summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--indra/newview/lltoast.cpp27
1 files changed, 17 insertions, 10 deletions
diff --git a/indra/newview/lltoast.cpp b/indra/newview/lltoast.cpp
index bf56a10d4d..223aaad811 100644
--- a/indra/newview/lltoast.cpp
+++ b/indra/newview/lltoast.cpp
@@ -220,7 +220,11 @@ void LLToast::hide()
/*virtual*/
void LLToast::setFocus(BOOL b)
{
- if (b && !hasFocus() && mPanel)
+ if (b
+ && !hasFocus()
+ && mPanel
+ && mWrapperPanel
+ && !mWrapperPanel->getChildList()->empty())
{
LLModalDialog::setFocus(TRUE);
// mostly for buttons
@@ -416,15 +420,18 @@ void LLToast::setVisible(BOOL show)
//hide "hide" button in case toast was hidden without mouse_leave
if(mHideBtn)
mHideBtn->setVisible(show);
- }
- LLFloater::setVisible(show);
- if(mPanel)
- {
- if(!mPanel->isDead())
- {
- mPanel->setVisible(show);
- }
- }
+ }
+ LLFloater::setVisible(show);
+ if (mPanel
+ && !mPanel->isDead()
+ && mWrapperPanel
+ && !mWrapperPanel->getChildList()->empty()
+ // LLInspectToast can take over, but LLToast still appears to act like a data storage
+ && mPanel->getParent() == mWrapperPanel
+ )
+ {
+ mPanel->setVisible(show);
+ }
}
void LLToast::updateHoveredState()