prevent the parent window from losing activation when a popup is shown

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@15662 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2002-05-25 13:02:58 +00:00
parent d45bc43695
commit 7e25f59e48
7 changed files with 119 additions and 25 deletions

View File

@@ -2918,31 +2918,19 @@ bool wxWindowMSW::MSWCreate(const wxChar *wclass,
wxWindow *parent = GetParent();
bool isChild = (style & WS_CHILD) != 0;
HWND hParent;
if ( GetWindowStyleFlag() & wxPOPUP_WINDOW )
if ( (isChild || HasFlag(wxPOPUP_WINDOW) || HasFlag(wxFRAME_TOOL_WINDOW)) )
{
// popup windows should have desktop as parent because they shouldn't
// be limited to the parents client area as child windows usually are
hParent = ::GetDesktopWindow();
// this is either a normal child window, a popup window or a top level
// window with wxFRAME_TOOL_WINDOW style (see below)
hParent = parent ? GetHwndOf(parent) : NULL;
}
else // !popup
else
{
if ( (isChild || HasFlag(wxFRAME_TOOL_WINDOW)) && parent )
{
// this is either a normal child window or a top level window with
// wxFRAME_TOOL_WINDOW style (see below)
hParent = GetHwndOf(parent);
}
else
{
// this is either a window for which no parent was specified (not
// much we can do then) or a frame without wxFRAME_TOOL_WINDOW
// style: we should use NULL parent HWND for it or it would be
// always on top of its parent which is not what we usually want
// (in fact, we only want it for frames with the special
// wxFRAME_TOOL_WINDOW as above)
hParent = NULL;
}
// this is a frame without wxFRAME_TOOL_WINDOW style: we should use
// NULL parent HWND for it or it would be always on top of its parent
// which is not what we usually want (in fact, we only want it for
// frames with the special wxFRAME_TOOL_WINDOW as above)
hParent = NULL;
}
// controlId is menu handle for the top level windows, so set it to 0