summaryrefslogtreecommitdiff
path: root/indra/llwindow/llwindow.cpp
diff options
context:
space:
mode:
authorLeslie Linden <leslie@lindenlab.com>2011-11-29 10:40:45 -0800
committerLeslie Linden <leslie@lindenlab.com>2011-11-29 10:40:45 -0800
commite919349054c8ae80a054f047756e6596b58a3e13 (patch)
tree4d2abc589c448fe2b54f7be09385e644fd5b87af /indra/llwindow/llwindow.cpp
parentec6893db5099b1e95802254277de0cc2e9bea83c (diff)
parentadeb71d98279fc4e8af7859cd36114be9f95e6da (diff)
Merge with viewer-experience
Diffstat (limited to 'indra/llwindow/llwindow.cpp')
-rw-r--r--indra/llwindow/llwindow.cpp25
1 files changed, 23 insertions, 2 deletions
diff --git a/indra/llwindow/llwindow.cpp b/indra/llwindow/llwindow.cpp
index a313885ca3..4919605afd 100644
--- a/indra/llwindow/llwindow.cpp
+++ b/indra/llwindow/llwindow.cpp
@@ -111,8 +111,8 @@ LLWindow::LLWindow(LLWindowCallbacks* callbacks, BOOL fullscreen, U32 flags)
mCursorHidden(FALSE),
mBusyCount(0),
mIsMouseClipping(FALSE),
- mMinWindowWidth(1024), // just a sanity check - actual minimum size is stored in settings.xml
- mMinWindowHeight(768),
+ mMinWindowWidth(S32_MAX), // just a sanity check - actual minimum size is stored in settings.xml
+ mMinWindowHeight(S32_MAX),
mSwapMethod(SWAP_METHOD_UNDEFINED),
mHideCursorPermanent(FALSE),
mFlags(flags),
@@ -181,11 +181,32 @@ void *LLWindow::getMediaWindow()
return getPlatformWindow();
}
+BOOL LLWindow::setSize(LLCoordScreen size)
+{
+ if (!getMaximized())
+ {
+ size.mX = llmin(size.mX, mMinWindowWidth);
+ size.mY = llmin(size.mY, mMinWindowHeight);
+ }
+ return setSizeImpl(size);
+}
+
+
// virtual
void LLWindow::setMinSize(U32 min_width, U32 min_height)
{
mMinWindowWidth = min_width;
mMinWindowHeight = min_height;
+
+ LLCoordScreen cur_size;
+ if (!getMaximized() && getSize(&cur_size))
+ {
+ if (cur_size.mX < mMinWindowWidth || cur_size.mY < mMinWindowHeight)
+ {
+ setSizeImpl(LLCoordScreen(llmin(cur_size.mX, mMinWindowWidth), llmin(cur_size.mY, mMinWindowHeight)));
+ }
+ }
+
}
//virtual