summaryrefslogtreecommitdiff
path: root/indra/newview/llhints.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llhints.cpp')
-rw-r--r--indra/newview/llhints.cpp16
1 files changed, 15 insertions, 1 deletions
diff --git a/indra/newview/llhints.cpp b/indra/newview/llhints.cpp
index d837ed8205..3f0deb98cd 100644
--- a/indra/newview/llhints.cpp
+++ b/indra/newview/llhints.cpp
@@ -109,7 +109,14 @@ public:
/*virtual*/ BOOL postBuild();
- void onClickClose() { hide(); LLNotifications::instance().cancel(mNotification); }
+ void onClickClose()
+ {
+ if (!mHidden)
+ {
+ hide();
+ LLNotifications::instance().cancel(mNotification);
+ }
+ }
void draw();
void hide() { if(!mHidden) {mHidden = true; mFadeTimer.reset();} }
@@ -211,9 +218,16 @@ void LLHintPopup::draw()
else if (!targetp->isInVisibleChain())
{
// if target is invisible, don't draw, but keep alive in case widget comes back
+ // but do make it so that it allows mouse events to pass through
+ setEnabled(false);
+ setMouseOpaque(false);
}
else
{
+ // revert back enabled and mouse opaque state in case we disabled it before
+ setEnabled(true);
+ setMouseOpaque(true);
+
LLRect target_rect;
targetp->localRectToOtherView(targetp->getLocalRect(), &target_rect, getParent());