diff options
Diffstat (limited to 'indra/newview/llhints.cpp')
-rw-r--r-- | indra/newview/llhints.cpp | 16 |
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()); |