diff --git a/src/common/wincmn.cpp b/src/common/wincmn.cpp index 23f8a98a83..d01360f22f 100644 --- a/src/common/wincmn.cpp +++ b/src/common/wincmn.cpp @@ -891,12 +891,11 @@ bool wxWindowBase::Enable(bool enable) bool wxWindowBase::IsShownOnScreen() const { -#ifdef __WXMAC__ - return ((wxWindowMac*)this)->MacIsReallyShown(); -#else + // A window is shown on screen if it itself is shown and so are all its + // parents. But if a window is toplevel one, then its always visible on + // screen if IsShown() returns true, even if it has a hidden parent. return IsShown() && - (GetParent() == NULL || GetParent()->IsShownOnScreen()); -#endif + (IsTopLevel() || !GetParent() || GetParent()->IsShownOnScreen()); } // ----------------------------------------------------------------------------