diff options
Diffstat (limited to 'indra/newview/llscriptfloater.cpp')
-rw-r--r-- | indra/newview/llscriptfloater.cpp | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/indra/newview/llscriptfloater.cpp b/indra/newview/llscriptfloater.cpp index a88a242fbe..f35cb3516a 100644 --- a/indra/newview/llscriptfloater.cpp +++ b/indra/newview/llscriptfloater.cpp @@ -135,7 +135,7 @@ void LLScriptFloater::setNotificationId(const LLUUID& id) void LLScriptFloater::getAllowedRect(LLRect& rect) { - rect = gViewerWindow->getWorldViewRectRaw(); + rect = gViewerWindow->getWorldViewRectScaled(); } void LLScriptFloater::createForm(const LLUUID& notification_id) @@ -154,14 +154,17 @@ void LLScriptFloater::createForm(const LLUUID& notification_id) } // create new form - mScriptForm = new LLToastNotifyPanel(notification); + LLRect toast_rect = getRect(); + // LLToastNotifyPanel will fit own content in vertical direction, + // but it needs an initial rect to properly calculate its width + // Use an initial rect of the script floater to make the floater window more configurable. + mScriptForm = new LLToastNotifyPanel(notification, toast_rect); addChild(mScriptForm); // position form on floater mScriptForm->setOrigin(0, 0); // make floater size fit form size - LLRect toast_rect = getRect(); LLRect panel_rect = mScriptForm->getRect(); toast_rect.setLeftTopAndSize(toast_rect.mLeft, toast_rect.mTop, panel_rect.getWidth(), panel_rect.getHeight() + getHeaderHeight()); setShape(toast_rect); @@ -283,7 +286,9 @@ void LLScriptFloater::dockToChiclet(bool dock) setSavePosition(false); setDockControl(new LLDockControl(chiclet, this, getDockTongue(), - LLDockControl::TOP, boost::bind(&LLScriptFloater::getAllowedRect, this, _1)), dock); + LLDockControl::TOP, boost::bind(&LLScriptFloater::getAllowedRect, this, _1))); + + setDocked(dock); // Restore saving setSavePosition(save); |