From 8024727d4546c07b723d1129651c189f7d2f28e3 Mon Sep 17 00:00:00 2001 From: Richard Linden Date: Mon, 27 Feb 2012 11:26:08 -0800 Subject: EXP-1832 WIP Viewer Size not persistent across logins fixed not unmaximizing properly on Windows put in error logging on Mac --- indra/llwindow/llwindowmacosx.cpp | 20 ++++++++++++++++---- indra/llwindow/llwindowwin32.cpp | 9 +++++++++ 2 files changed, 25 insertions(+), 4 deletions(-) diff --git a/indra/llwindow/llwindowmacosx.cpp b/indra/llwindow/llwindowmacosx.cpp index a998d1f877..fef5f4da3b 100644 --- a/indra/llwindow/llwindowmacosx.cpp +++ b/indra/llwindow/llwindowmacosx.cpp @@ -1271,10 +1271,22 @@ BOOL LLWindowMacOSX::setSizeImpl(const LLCoordWindow size) Rect client_rect; if (mWindow && GetWindowBounds(mWindow, kWindowContentRgn, &client_rect) != noErr) { - client_rect.right = client_rect.left + size.mX; - client_rect.bottom = client_rect.top + size.mY; - OSStatus err = SetWindowBounds(mWindow, kWindowContentRgn, &client_rect); - return err == noErr; + OSStatus err = getWindowBounds(mWindow, kWindowContentRgn, &client_rect); + if (err == noErr) + { + client_rect.right = client_rect.left + size.mX; + client_rect.bottom = client_rect.top + size.mY; + err = SetWindowBounds(mWindow, kWindowContentRgn, &client_rect); + } + if (err == noErr) + { + return TRUE; + } + else + { + llinfos << "Error setting size" << err << llendl; + return FALSE; + } } return FALSE; } diff --git a/indra/llwindow/llwindowwin32.cpp b/indra/llwindow/llwindowwin32.cpp index 9aef25491b..bc85acbf45 100644 --- a/indra/llwindow/llwindowwin32.cpp +++ b/indra/llwindow/llwindowwin32.cpp @@ -872,6 +872,15 @@ BOOL LLWindowWin32::setSizeImpl(const LLCoordScreen size) return FALSE; } + WINDOWPLACEMENT placement; + placement.length = sizeof(WINDOWPLACEMENT); + + if (!GetWindowPlacement(mWindowHandle, &placement)) return FALSE; + + placement.showCmd = SW_RESTORE; + + if (!SetWindowPlacement(mWindowHandle, &placement)) return FALSE; + moveWindow(position, size); return TRUE; } -- cgit v1.2.3