- Fix return to previously active window. See CORE-106.

svn path=/trunk/; revision=66055
This commit is contained in:
James Tabor 2015-01-18 22:39:56 +00:00
parent 2bf5258b98
commit 2439d0030f
2 changed files with 8 additions and 2 deletions

View file

@ -2594,7 +2594,8 @@ BOOLEAN co_UserDestroyWindow(PVOID Object)
*/
if (!co_WinPosShowWindow(Window, SW_HIDE))
{ // Rule #1.
if (ti->MessageQueue->spwndActive == Window && ti->MessageQueue == IntGetFocusMessageQueue())
if ( ti->MessageQueue->spwndActive == Window ||
(ti->MessageQueue->spwndActive == NULL && ti->MessageQueue == IntGetFocusMessageQueue()) )
{
co_WinPosActivateOtherWindow(Window);
}

View file

@ -349,11 +349,16 @@ co_WinPosActivateOtherWindow(PWND Wnd)
{
WndTo = Wnd->head.pti->MessageQueue->spwndActivePrev;
if (can_activate_window( WndTo )) goto done;
}
// Find any window to bring to top. Works Okay for wine.
// Find any window to bring to top. Works Okay for wine since it does not see X11 windows.
WndTo = UserGetDesktopWindow();
WndTo = WndTo->spwndChild;
if ( WndTo == NULL )
{
return;
}
for (;;)
{
if (WndTo == Wnd)