summaryrefslogtreecommitdiff
path: root/indra/newview/lltoast.cpp
diff options
context:
space:
mode:
authorbrad kittenbrink <brad@lindenlab.com>2009-08-05 18:45:18 -0700
committerbrad kittenbrink <brad@lindenlab.com>2009-08-05 18:45:18 -0700
commita8d216e194327c7bee8a42c983f7f2ca01adb385 (patch)
tree76819d6e78c7e7cf0c5e54d319847f4731c77205 /indra/newview/lltoast.cpp
parent860a82863966435bea680d8541f051e99a6c226c (diff)
parent24d146a9ff26af1f3e4cf5af2c5238ca42e2c6c7 (diff)
Merged in my DEV-35401 "doubleton" fix.
Diffstat (limited to 'indra/newview/lltoast.cpp')
-rw-r--r--indra/newview/lltoast.cpp26
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);
+}