diff options
| author | brad kittenbrink <brad@lindenlab.com> | 2009-08-05 18:45:18 -0700 |
|---|---|---|
| committer | brad kittenbrink <brad@lindenlab.com> | 2009-08-05 18:45:18 -0700 |
| commit | a8d216e194327c7bee8a42c983f7f2ca01adb385 (patch) | |
| tree | 76819d6e78c7e7cf0c5e54d319847f4731c77205 /indra/newview/lltoast.cpp | |
| parent | 860a82863966435bea680d8541f051e99a6c226c (diff) | |
| parent | 24d146a9ff26af1f3e4cf5af2c5238ca42e2c6c7 (diff) | |
Merged in my DEV-35401 "doubleton" fix.
Diffstat (limited to 'indra/newview/lltoast.cpp')
| -rw-r--r-- | indra/newview/lltoast.cpp | 26 |
1 files changed, 20 insertions, 6 deletions
diff --git a/indra/newview/lltoast.cpp b/indra/newview/lltoast.cpp index 6f5b25214e..8a7c7708b9 100644 --- a/indra/newview/lltoast.cpp +++ b/indra/newview/lltoast.cpp @@ -36,19 +36,21 @@ #include "llbutton.h" #include "llfocusmgr.h" +#include "llviewercontrol.h" using namespace LLNotificationsUI; //-------------------------------------------------------------------------- LLToast::LLToast(LLPanel* panel) : - LLFloater(), + LLFloater(LLSD()), mTimerValue(5), mIsViewed(false), mPanel(panel), mCanFade(true), mHideBtn(NULL), mIsModal(false), - mCanBeStored(true) + mCanBeStored(true), + mHideBtnPressed(false) { LLUICtrlFactory::getInstance()->buildPanel(this, "panel_toast.xml"); @@ -104,8 +106,7 @@ bool LLToast::timerHasExpired() if (mTimer.getStarted()) { F32 elapsed_time = mTimer.getElapsedTimeF32(); - // after 4 seconds a toast should start fade - if (elapsed_time > 4) + if (elapsed_time > gSavedSettings.getS32("ToastOpaqueTime")) { setBackgroundOpaque(FALSE); } @@ -218,6 +219,7 @@ void LLToast::onMouseEnter(S32 x, S32 y, MASK mask) //-------------------------------------------------------------------------- void LLToast::onMouseLeave(S32 x, S32 y, MASK mask) { + llinfos << "MOUSE LEAVE: x = " << x << "y = " << y << llendl; mOnToastHover(this, MOUSE_LEAVE); if(mCanFade && !mIsViewed) @@ -226,14 +228,26 @@ void LLToast::onMouseLeave(S32 x, S32 y, MASK mask) } if(mHideBtn && mHideBtn->getEnabled()) { - if( mHideBtn->getRect().pointInRect(x, y) ) + if( mHideBtnPressed ) + { + mHideBtnPressed = false; return; - mHideBtn->setVisible(FALSE); + } + mHideBtn->setVisible(FALSE); } } //-------------------------------------------------------------------------- +BOOL LLToast::handleMouseDown(S32 x, S32 y, MASK mask) +{ + if(mHideBtn && mHideBtn->getEnabled()) + { + mHideBtnPressed = mHideBtn->getRect().pointInRect(x, y); + } + + return LLFloater::handleMouseDown(x, y, mask); +} |
