diff options
author | Merov Linden <merov@lindenlab.com> | 2010-08-26 21:45:20 -0700 |
---|---|---|
committer | Merov Linden <merov@lindenlab.com> | 2010-08-26 21:45:20 -0700 |
commit | dbe965eaa1864ff71e365608488a5015172a24ed (patch) | |
tree | f3a7f10360a50a09ca1267fd204802507b079a17 /indra/newview/llpaneltopinfobar.cpp | |
parent | 6ed18227535e1b76ae650efdacfb14c1a884fc1a (diff) | |
parent | 838c01e87d69a29f39554fbc5fa972ddd3baace1 (diff) |
Sync with viewer-development
Diffstat (limited to 'indra/newview/llpaneltopinfobar.cpp')
-rw-r--r-- | indra/newview/llpaneltopinfobar.cpp | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/indra/newview/llpaneltopinfobar.cpp b/indra/newview/llpaneltopinfobar.cpp index 15f7195b1a..0d17fb3e82 100644 --- a/indra/newview/llpaneltopinfobar.cpp +++ b/indra/newview/llpaneltopinfobar.cpp @@ -155,6 +155,8 @@ BOOL LLPanelTopInfoBar::postBuild() mParcelMgrConnection = LLViewerParcelMgr::getInstance()->addAgentParcelChangedCallback( boost::bind(&LLPanelTopInfoBar::onAgentParcelChange, this)); + setVisibleCallback(boost::bind(&LLPanelTopInfoBar::onVisibilityChange, this, _2)); + return TRUE; } @@ -168,6 +170,27 @@ void LLPanelTopInfoBar::onNavBarShowParcelPropertiesCtrlChanged() setParcelInfoText(new_text); } +// when panel is shown, all minimized floaters should be shifted downwards to prevent overlapping of +// PanelTopInfoBar. See EXT-7951. +void LLPanelTopInfoBar::onVisibilityChange(const LLSD& show) +{ + // this height is used as a vertical offset for ALREADY MINIMIZED floaters + // when PanelTopInfoBar visibility changes + S32 height = getRect().getHeight(); + + // this vertical offset is used for a start minimize position of floaters that + // are NOT MIMIMIZED YET + S32 minimize_pos_offset = 0; + + if (show.asBoolean()) + { + height = minimize_pos_offset = -height; + } + + gFloaterView->shiftFloaters(0, height); + gFloaterView->setMinimizePositionVerticalOffset(minimize_pos_offset); +} + void LLPanelTopInfoBar::draw() { updateParcelInfoText(); |