diff options
Diffstat (limited to '')
-rw-r--r-- | linden/indra/llwindow/llwindowwin32.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/linden/indra/llwindow/llwindowwin32.cpp b/linden/indra/llwindow/llwindowwin32.cpp index 0b3cdd4..3a41d01 100644 --- a/linden/indra/llwindow/llwindowwin32.cpp +++ b/linden/indra/llwindow/llwindowwin32.cpp | |||
@@ -1585,6 +1585,11 @@ void LLWindowWin32::moveWindow( const LLCoordScreen& position, const LLCoordScre | |||
1585 | } | 1585 | } |
1586 | } | 1586 | } |
1587 | 1587 | ||
1588 | // if the window was already maximized, MoveWindow seems to still set the maximized flag even if | ||
1589 | // the window is smaller than maximized. | ||
1590 | // So we're going to do a restore first (which is a ShowWindow call) (SL-44655). | ||
1591 | ShowWindow(mWindowHandle, SW_RESTORE); | ||
1592 | // NOW we can call MoveWindow | ||
1588 | MoveWindow(mWindowHandle, position.mX, position.mY, size.mX, size.mY, TRUE); | 1593 | MoveWindow(mWindowHandle, position.mX, position.mY, size.mX, size.mY, TRUE); |
1589 | } | 1594 | } |
1590 | 1595 | ||
@@ -2289,6 +2294,13 @@ LRESULT CALLBACK LLWindowWin32::mainWindowProc(HWND h_wnd, UINT u_msg, WPARAM w_ | |||
2289 | << llendl; | 2294 | << llendl; |
2290 | } | 2295 | } |
2291 | 2296 | ||
2297 | // There's an odd behavior with WM_SIZE that I would call a bug. If | ||
2298 | // the window is maximized, and you call MoveWindow() with a size smaller | ||
2299 | // than a maximized window, it ends up sending WM_SIZE with w_param set | ||
2300 | // to SIZE_MAXIMIZED -- which isn't true. So the logic below doesn't work. | ||
2301 | // (SL-44655). Fixed it by calling ShowWindow(SW_RESTORE) first (see | ||
2302 | // LLWindowWin32::moveWindow in this file). | ||
2303 | |||
2292 | // If we are now restored, but we weren't before, this | 2304 | // If we are now restored, but we weren't before, this |
2293 | // means that the window was un-minimized. | 2305 | // means that the window was un-minimized. |
2294 | if (w_param == SIZE_RESTORED && window_imp->mLastSizeWParam != SIZE_RESTORED) | 2306 | if (w_param == SIZE_RESTORED && window_imp->mLastSizeWParam != SIZE_RESTORED) |