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.cpp46
1 files changed, 15 insertions, 31 deletions
diff --git a/indra/llui/llfloater.cpp b/indra/llui/llfloater.cpp
index a17e306325..845203b420 100644
--- a/indra/llui/llfloater.cpp
+++ b/indra/llui/llfloater.cpp
@@ -878,11 +878,9 @@ void LLFloater::setSnappedTo(const LLView* snap_view)
else
{
//RN: assume it's a floater as it must be a sibling to our parent floater
- const LLFloater* floaterp = dynamic_cast<const LLFloater*>(snap_view);
- if (floaterp)
- {
- setSnapTarget(floaterp->getHandle());
- }
+ LLFloater* floaterp = (LLFloater*)snap_view;
+
+ setSnapTarget(floaterp->getHandle());
}
}
@@ -1067,6 +1065,10 @@ void LLFloater::setMinimized(BOOL minimize)
reshape( mExpandedRect.getWidth(), mExpandedRect.getHeight(), TRUE );
}
+ // don't show the help button while minimized - it's
+ // not very useful when minimized and uses up space
+ mButtonsEnabled[BUTTON_HELP] = !minimize;
+
applyTitle ();
make_ui_sound("UISndWindowClose");
@@ -1739,32 +1741,14 @@ void LLFloater::updateButtons()
S32 button_count = 0;
for (S32 i = 0; i < BUTTON_COUNT; i++)
{
- if (!mButtons[i])
- {
- continue;
- }
+ if(!mButtons[i]) continue;
+ mButtons[i]->setEnabled(mButtonsEnabled[i]);
- bool enabled = mButtonsEnabled[i];
- if (i == BUTTON_HELP)
- {
- // don't show the help button if the floater is minimized
- // or if it is a tear-off hosted floater
- if (isMinimized() || mButtonsEnabled[BUTTON_TEAR_OFF])
- {
- enabled = false;
- }
- }
- if (i == BUTTON_CLOSE && mButtonScale != 1.f)
- {
- //*HACK: always render close button for hosted floaters so
- //that users don't accidentally hit the button when
- //closing multiple windows in the chatterbox
- enabled = true;
- }
-
- mButtons[i]->setEnabled(enabled);
-
- if (enabled)
+ if (mButtonsEnabled[i]
+ //*HACK: always render close button for hosted floaters
+ // so that users don't accidentally hit the button when closing multiple windows
+ // in the chatterbox
+ || (i == BUTTON_CLOSE && mButtonScale != 1.f))
{
button_count++;
@@ -1791,7 +1775,7 @@ void LLFloater::updateButtons()
// the restore button should have a tab stop so that it takes action when you Ctrl-Tab to a minimized floater
mButtons[i]->setTabStop(i == BUTTON_RESTORE);
}
- else
+ else if (mButtons[i])
{
mButtons[i]->setVisible(FALSE);
}