From ef0552a090123974682790afdafec68218578113 Mon Sep 17 00:00:00 2001 From: Leslie Linden Date: Fri, 2 Dec 2011 12:33:51 -0800 Subject: EXP-1642 FIX -- Viewer crash on startup on Mac Minimum window size setting no longer forces propagation to the OS before root view is initialized. --- indra/llwindow/llwindow.cpp | 14 ++++++++------ indra/llwindow/llwindow.h | 2 +- 2 files changed, 9 insertions(+), 7 deletions(-) (limited to 'indra/llwindow') diff --git a/indra/llwindow/llwindow.cpp b/indra/llwindow/llwindow.cpp index 4919605afd..0e17cffc9d 100644 --- a/indra/llwindow/llwindow.cpp +++ b/indra/llwindow/llwindow.cpp @@ -193,20 +193,22 @@ BOOL LLWindow::setSize(LLCoordScreen size) // virtual -void LLWindow::setMinSize(U32 min_width, U32 min_height) +void LLWindow::setMinSize(U32 min_width, U32 min_height, bool enforce_immediately) { mMinWindowWidth = min_width; mMinWindowHeight = min_height; - LLCoordScreen cur_size; - if (!getMaximized() && getSize(&cur_size)) + if (enforce_immediately) { - if (cur_size.mX < mMinWindowWidth || cur_size.mY < mMinWindowHeight) + LLCoordScreen cur_size; + if (!getMaximized() && getSize(&cur_size)) { - setSizeImpl(LLCoordScreen(llmin(cur_size.mX, mMinWindowWidth), llmin(cur_size.mY, mMinWindowHeight))); + if (cur_size.mX < mMinWindowWidth || cur_size.mY < mMinWindowHeight) + { + setSizeImpl(LLCoordScreen(llmin(cur_size.mX, mMinWindowWidth), llmin(cur_size.mY, mMinWindowHeight))); + } } } - } //virtual diff --git a/indra/llwindow/llwindow.h b/indra/llwindow/llwindow.h index 77a9e88287..ec41f24465 100644 --- a/indra/llwindow/llwindow.h +++ b/indra/llwindow/llwindow.h @@ -73,7 +73,7 @@ public: virtual BOOL getSize(LLCoordWindow *size) = 0; virtual BOOL setPosition(LLCoordScreen position) = 0; BOOL setSize(LLCoordScreen size); - virtual void setMinSize(U32 min_width, U32 min_height); + virtual void setMinSize(U32 min_width, U32 min_height, bool enforce_immediately = true); virtual BOOL switchContext(BOOL fullscreen, const LLCoordScreen &size, BOOL disable_vsync, const LLCoordScreen * const posp = NULL) = 0; virtual BOOL setCursorPosition(LLCoordWindow position) = 0; virtual BOOL getCursorPosition(LLCoordWindow *position) = 0; -- cgit v1.2.3