diff options
Diffstat (limited to 'indra')
-rw-r--r-- | indra/llui/lldockcontrol.cpp | 10 | ||||
-rw-r--r-- | indra/llui/lldockcontrol.h | 1 | ||||
-rw-r--r-- | indra/newview/llbottomtray.cpp | 11 | ||||
-rw-r--r-- | indra/newview/llchiclet.cpp | 4 | ||||
-rw-r--r-- | indra/newview/llnavigationbar.cpp | 2 | ||||
-rw-r--r-- | indra/newview/llscreenchannel.cpp | 2 | ||||
-rw-r--r-- | indra/newview/llsearchcombobox.cpp | 8 | ||||
-rw-r--r-- | indra/newview/lltoast.cpp | 10 | ||||
-rw-r--r-- | indra/newview/skins/default/xui/en/panel_bottomtray.xml | 7 |
9 files changed, 38 insertions, 17 deletions
diff --git a/indra/llui/lldockcontrol.cpp b/indra/llui/lldockcontrol.cpp index bec7f04cc0..e119d387ce 100644 --- a/indra/llui/lldockcontrol.cpp +++ b/indra/llui/lldockcontrol.cpp @@ -65,11 +65,14 @@ void LLDockControl::repositionDockable() void LLDockControl::calculateDockablePosition() { LLRect dockRect = mDockWidget->calcScreenRect(); - if (mPrevDockRect != dockRect || mRecalculateDocablePosition) + LLRect rootRect = mDockableFloater->getRootView()->getRect(); + + // recalculate dockable position if dock position changed + // or root view rect changed or recalculation is forced + if (mPrevDockRect != dockRect || mRootRect != rootRect + || mRecalculateDocablePosition) { LLRect dockableRect = mDockableFloater->calcScreenRect(); - LLRect rootRect = mDockableFloater->getRootView()->getRect(); - S32 x = 0; S32 y = 0; switch (mDockAt) @@ -100,6 +103,7 @@ void LLDockControl::calculateDockablePosition() mDockableFloater->screenPointToLocal(mDockTongueX, mDockTongueY, &mDockTongueX, &mDockTongueY); mPrevDockRect = dockRect; + mRootRect = rootRect; mRecalculateDocablePosition = false; } } diff --git a/indra/llui/lldockcontrol.h b/indra/llui/lldockcontrol.h index 0e1f4c8e64..ae4e53ddc9 100644 --- a/indra/llui/lldockcontrol.h +++ b/indra/llui/lldockcontrol.h @@ -72,6 +72,7 @@ private: DocAt mDockAt; LLView* mDockWidget; LLRect mPrevDockRect; + LLRect mRootRect; LLFloater* mDockableFloater; LLUIImagePtr mDockTongue; S32 mDockTongueX; diff --git a/indra/newview/llbottomtray.cpp b/indra/newview/llbottomtray.cpp index d166715038..06f9a86d8d 100644 --- a/indra/newview/llbottomtray.cpp +++ b/indra/newview/llbottomtray.cpp @@ -224,11 +224,14 @@ void LLBottomTray::setVisible(BOOL visible) BOOL LLBottomTray::handleRightMouseDown(S32 x, S32 y, MASK mask) { - if (mShowCamMoveCtrlsContextMenu) + if (!LLPanel::handleRightMouseDown(x, y, mask)) { - mShowCamMoveCtrlsContextMenu->buildDrawLabels(); - mShowCamMoveCtrlsContextMenu->updateParent(LLMenuGL::sMenuContainer); - LLMenuGL::showPopup(this, mShowCamMoveCtrlsContextMenu, x, y); + if (mShowCamMoveCtrlsContextMenu) + { + mShowCamMoveCtrlsContextMenu->buildDrawLabels(); + mShowCamMoveCtrlsContextMenu->updateParent(LLMenuGL::sMenuContainer); + LLMenuGL::showPopup(this, mShowCamMoveCtrlsContextMenu, x, y); + } } return TRUE; diff --git a/indra/newview/llchiclet.cpp b/indra/newview/llchiclet.cpp index 9ce194c712..e5acf62189 100644 --- a/indra/newview/llchiclet.cpp +++ b/indra/newview/llchiclet.cpp @@ -670,6 +670,10 @@ LLChicletPanel::LLChicletPanel(const Params&p) LLPanel::Params panel_params; mScrollArea = LLUICtrlFactory::create<LLPanel>(panel_params,this); + + // important for Show/Hide Camera and Move controls menu in bottom tray to work properly + mScrollArea->setMouseOpaque(false); + addChild(mScrollArea); } diff --git a/indra/newview/llnavigationbar.cpp b/indra/newview/llnavigationbar.cpp index 69cebcfb5e..b1db51dd26 100644 --- a/indra/newview/llnavigationbar.cpp +++ b/indra/newview/llnavigationbar.cpp @@ -298,7 +298,7 @@ void LLNavigationBar::onHomeButtonClicked() void LLNavigationBar::onSearchCommit() { - std::string search_query = mSearchComboBox->getValue().asString(); + std::string search_query = mSearchComboBox->getSimple(); if(!search_query.empty()) { LLSearchHistory::getInstance()->addEntry(search_query); diff --git a/indra/newview/llscreenchannel.cpp b/indra/newview/llscreenchannel.cpp index 1fbe359295..2157f1af74 100644 --- a/indra/newview/llscreenchannel.cpp +++ b/indra/newview/llscreenchannel.cpp @@ -64,6 +64,7 @@ LLScreenChannel::LLScreenChannel(LLUUID& id): mOverflowToastPanel(NULL), mStartU setMouseOpaque( false ); } +//-------------------------------------------------------------------------- void LLScreenChannel::init(S32 channel_left, S32 channel_right) { S32 channel_top = getRootView()->getRect().getHeight() - gSavedSettings.getS32("NavBarMargin"); @@ -326,6 +327,7 @@ void LLScreenChannel::showToastsBottom() mHiddenToastsNum = 0; for(; it != mToastList.rend(); it++) { + (*it).toast->stopTimer(); mHiddenToastsNum++; } createOverflowToast(bottom, gSavedSettings.getS32("NotificationToastTime")); diff --git a/indra/newview/llsearchcombobox.cpp b/indra/newview/llsearchcombobox.cpp index 29d31e8b56..ab5536a12d 100644 --- a/indra/newview/llsearchcombobox.cpp +++ b/indra/newview/llsearchcombobox.cpp @@ -153,16 +153,16 @@ void LLSearchComboBox::onSelectionCommit() std::string search_query = getSimple(); LLStringUtil::trim(search_query); - mTextEntry->setText(search_query); - setControlValue(search_query); - + // Order of add() and mTextEntry->setText does matter because add() will select first item + // in drop down list and its label will be copied to text box rewriting mTextEntry->setText() call if(!search_query.empty()) { remove(search_query); add(search_query, ADD_TOP); } - LLUICtrl::onCommit(); + mTextEntry->setText(search_query); + setControlValue(search_query); } BOOL LLSearchComboBox::remove(const std::string& name) diff --git a/indra/newview/lltoast.cpp b/indra/newview/lltoast.cpp index 85814a98c9..fb7574d68b 100644 --- a/indra/newview/lltoast.cpp +++ b/indra/newview/lltoast.cpp @@ -84,11 +84,7 @@ LLToast::LLToast(LLToast::Params p) : LLFloater(LLSD()), //-------------------------------------------------------------------------- BOOL LLToast::postBuild() { - if(mCanFade) - { - mTimer.start(); - } - else + if(!mCanFade) { mTimer.stop(); } @@ -209,6 +205,10 @@ void LLToast::setVisible(BOOL show) if(show) { setBackgroundOpaque(TRUE); + if(!mTimer.getStarted()) + { + mTimer.start(); + } } LLPanel::setVisible(show); if(mPanel) diff --git a/indra/newview/skins/default/xui/en/panel_bottomtray.xml b/indra/newview/skins/default/xui/en/panel_bottomtray.xml index df91920721..6449059ef0 100644 --- a/indra/newview/skins/default/xui/en/panel_bottomtray.xml +++ b/indra/newview/skins/default/xui/en/panel_bottomtray.xml @@ -1,5 +1,6 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <panel + mouse_opaque="false" background_visible="true" bg_alpha_color="0.25 0.25 0.25 1" bg_opaque_color="0.25 0.25 0.25 1" @@ -12,6 +13,7 @@ border_visible="true" width="1000"> <layout_stack + mouse_opaque="false" border_size="0" clip="false" follows="left|right|bottom|top" @@ -33,6 +35,7 @@ top="0" width="5"/> <layout_panel + mouse_opaque="false" auto_resize="false" follows="left|right" height="28" @@ -57,6 +60,7 @@ top="0" width="3"/> <layout_panel + mouse_opaque="false" auto_resize="false" follows="right" height="28" @@ -96,6 +100,7 @@ top="0" width="8"/> <layout_panel + mouse_opaque="false" auto_resize="false" follows="right" height="28" @@ -188,6 +193,7 @@ top="0" width="5"/> <layout_panel + mouse_opaque="false" follows="left|right" height="28" layout="topleft" @@ -197,6 +203,7 @@ width="150" user_resize="false"> <chiclet_panel + mouse_opaque="false" follows="left|right" height="25" layout="topleft" |