Force rebuilding of window stack if a window changes it's state from

minimized.
This commit is contained in:
Alexander Gottwald 2005-03-10 20:05:46 +00:00
parent 522628f25b
commit 8653db5d57
2 changed files with 23 additions and 1 deletions

View File

@ -1,3 +1,9 @@
2005-03-10 Alexander Gottwald <ago at freedesktop dot org>
* winmultiwindowwndproc.c:
Force rebuilding of window stack if a window changes it's state from
minimized.
2005-03-07 Alexander Gottwald <ago at freedesktop dot org>
* winmultiwindowwndproc.c:

View File

@ -301,6 +301,8 @@ winTopLevelWindowProc (HWND hwnd, UINT message,
winWMMessageRec wmMsg;
Bool fWMMsgInitialized = FALSE;
static Bool s_fTracking = FALSE;
Bool needRestack = FALSE;
LRESULT ret;
#if CYGDEBUG
winDebugWin32Message("winTopLevelWindowProc", hwnd, message, wParam, lParam);
@ -403,6 +405,13 @@ winTopLevelWindowProc (HWND hwnd, UINT message,
/* Don't pass customized menus to DefWindowProc */
return 0;
}
if (wParam == SC_RESTORE || wParam == SC_MAXIMIZE)
{
WINDOWPLACEMENT wndpl;
wndpl.length = sizeof(wndpl);
if (GetWindowPlacement(hwnd, &wndpl) && wndpl.showCmd == SW_SHOWMINIMIZED)
needRestack = TRUE;
}
break;
case WM_INITMENU:
@ -1010,5 +1019,12 @@ winTopLevelWindowProc (HWND hwnd, UINT message,
break;
}
return DefWindowProc (hwnd, message, wParam, lParam);
ret = DefWindowProc (hwnd, message, wParam, lParam);
/*
* If the window was minized we get the stack change before the window is restored
* and so it gets lost. Ensure there stacking order is correct.
*/
if (needRestack)
winReorderWindowsMultiWindow();
return ret;
}