diff --git a/win32ss/user/ntuser/winpos.c b/win32ss/user/ntuser/winpos.c index bbe6ac5f90..54f7b6910f 100644 --- a/win32ss/user/ntuser/winpos.c +++ b/win32ss/user/ntuser/winpos.c @@ -1904,14 +1904,19 @@ co_WinPosSetWindowPos( } else if (WinPos.flags & SWP_SHOWWINDOW) { - if ((Window->ExStyle & WS_EX_APPWINDOW) || - (!(Window->ExStyle & WS_EX_TOOLWINDOW) && !Window->spwndOwner && - (!Window->spwndParent || UserIsDesktopWindow(Window->spwndParent)))) + if (Window->spwndOwner == NULL || + !(Window->spwndOwner->style & WS_VISIBLE) || + (Window->spwndOwner->ExStyle & WS_EX_TOOLWINDOW)) { - co_IntShellHookNotify(HSHELL_WINDOWCREATED, (WPARAM)Window->head.h, 0); - if (!(WinPos.flags & SWP_NOACTIVATE)) - UpdateShellHook(Window); - } + if (UserIsDesktopWindow(Window->spwndParent) && + (!(Window->ExStyle & WS_EX_TOOLWINDOW) || + (Window->ExStyle & WS_EX_APPWINDOW))) + { + co_IntShellHookNotify(HSHELL_WINDOWCREATED, (WPARAM)Window->head.h, 0); + if (!(WinPos.flags & SWP_NOACTIVATE)) + UpdateShellHook(Window); + } + } Window->style |= WS_VISIBLE; //IntSetStyle( Window, WS_VISIBLE, 0 ); Window->head.pti->cVisWindows++;