summaryrefslogtreecommitdiff
path: root/indra/llui/llfloater.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/llui/llfloater.cpp')
-rw-r--r--indra/llui/llfloater.cpp14
1 files changed, 11 insertions, 3 deletions
diff --git a/indra/llui/llfloater.cpp b/indra/llui/llfloater.cpp
index 84754d9c4d..3f8116d8d6 100644
--- a/indra/llui/llfloater.cpp
+++ b/indra/llui/llfloater.cpp
@@ -868,6 +868,7 @@ bool LLFloater::applyRectControl()
}
else
{
+ bool rect_specified = false;
if (!mRectControl.empty())
{
// If we have a saved rect, use it
@@ -881,10 +882,11 @@ bool LLFloater::applyRectControl()
{
reshape(llmax(mMinWidth, rect.getWidth()), llmax(mMinHeight, rect.getHeight()));
}
+ mPositioning = LLFloaterEnums::POSITIONING_RELATIVE;
+ LLRect screen_rect = calcScreenRect();
+ mPosition = LLCoordGL(screen_rect.getCenterX(), screen_rect.getCenterY()).convert();
+ rect_specified = true;
}
- mPositioning = LLFloaterEnums::POSITIONING_RELATIVE;
- LLRect screen_rect = calcScreenRect();
- mPosition = LLCoordGL(screen_rect.getCenterX(), screen_rect.getCenterY()).convert();
}
LLControlVariablePtr x_control = getControlGroup()->getControl(mPosXControl);
@@ -901,6 +903,12 @@ bool LLFloater::applyRectControl()
saved_rect = true;
}
+
+ // remember updated position
+ if (rect_specified)
+ {
+ storeRectControl();
+ }
}
if (saved_rect)