From 381c9f468d9ff0d48b0e80430856251acfe17066 Mon Sep 17 00:00:00 2001 From: Dmitry Oleshko Date: Thu, 12 Nov 2009 18:48:02 +0200 Subject: fixed major bugs (EXT-2392) No "login" toast appears with overall number of unresolved interactive notifications (EXT-2391) Notifications overflow toast is broken --HG-- branch : product-engine --- indra/newview/llscreenchannel.cpp | 5 ----- 1 file changed, 5 deletions(-) (limited to 'indra/newview/llscreenchannel.cpp') diff --git a/indra/newview/llscreenchannel.cpp b/indra/newview/llscreenchannel.cpp index b667fbf5fd..8825a64853 100644 --- a/indra/newview/llscreenchannel.cpp +++ b/indra/newview/llscreenchannel.cpp @@ -456,7 +456,6 @@ void LLScreenChannel::createOverflowToast(S32 bottom, F32 timer) mOverflowToastPanel->setOnFadeCallback(boost::bind(&LLScreenChannel::closeOverflowToastPanel, this)); LLTextBox* text_box = mOverflowToastPanel->getChild("toast_text"); - LLIconCtrl* icon = mOverflowToastPanel->getChild("icon"); std::string text = llformat(mOverflowFormatString.c_str(),mHiddenToastsNum); if(mHiddenToastsNum == 1) { @@ -474,7 +473,6 @@ void LLScreenChannel::createOverflowToast(S32 bottom, F32 timer) text_box->setValue(text); text_box->setVisible(TRUE); - icon->setVisible(TRUE); mOverflowToastPanel->setVisible(TRUE); } @@ -532,7 +530,6 @@ void LLScreenChannel::createStartUpToast(S32 notif_num, F32 timer) mStartUpToastPanel->setOnFadeCallback(boost::bind(&LLScreenChannel::onStartUpToastHide, this)); LLTextBox* text_box = mStartUpToastPanel->getChild("toast_text"); - LLIconCtrl* icon = mStartUpToastPanel->getChild("icon"); std::string mStartUpFormatString; @@ -555,8 +552,6 @@ void LLScreenChannel::createStartUpToast(S32 notif_num, F32 timer) text_box->setValue(text); text_box->setVisible(TRUE); - icon->setVisible(TRUE); - addChild(mStartUpToastPanel); mStartUpToastPanel->setVisible(TRUE); -- cgit v1.2.3 From 4c637196e4c511c7d199a66759671e16e9a7566b Mon Sep 17 00:00:00 2001 From: Alexei Arabadji Date: Thu, 12 Nov 2009 18:57:27 +0200 Subject: fixed EXT-2397 "Notification and IM toasts stop to appear after pressing Reply in any IM toast" --HG-- branch : product-engine --- indra/newview/llscreenchannel.cpp | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) (limited to 'indra/newview/llscreenchannel.cpp') diff --git a/indra/newview/llscreenchannel.cpp b/indra/newview/llscreenchannel.cpp index b667fbf5fd..1f36c3d26e 100644 --- a/indra/newview/llscreenchannel.cpp +++ b/indra/newview/llscreenchannel.cpp @@ -63,7 +63,7 @@ LLScreenChannelBase::LLScreenChannelBase(const LLUUID& id) : ,mCanStoreToasts(true) ,mHiddenToastsNum(0) ,mOverflowToastHidden(false) - ,mIsHovering(false) + ,mHoveredToast(NULL) ,mControlHovering(false) ,mShowToasts(true) { @@ -216,8 +216,10 @@ void LLScreenChannel::deleteToast(LLToast* toast) // update channel's Hovering state // turning hovering off manually because onMouseLeave won't happen if a toast was closed using a keyboard - if(toast->hasFocus()) - setHovering(false); + if(mHoveredToast == toast) + { + mHoveredToast = NULL; + } // close the toast toast->closeFloater(); @@ -352,7 +354,7 @@ void LLScreenChannel::modifyToastByNotificationID(LLUUID id, LLPanel* panel) //-------------------------------------------------------------------------- void LLScreenChannel::redrawToasts() { - if(mToastList.size() == 0 || mIsHovering) + if(mToastList.size() == 0 || isHovering()) return; hideToastsFromScreen(); @@ -654,7 +656,10 @@ void LLScreenChannel::onToastHover(LLToast* toast, bool mouse_enter) // we must check this to prevent incorrect setting for hovering in a channel std::map::iterator it_first, it_second; S32 stack_size = mToastEventStack.size(); - mIsHovering = mouse_enter; + if(mouse_enter) + { + mHoveredToast = toast; + } switch(stack_size) { @@ -666,7 +671,7 @@ void LLScreenChannel::onToastHover(LLToast* toast, bool mouse_enter) if((*it_first).second && !mouse_enter && ((*it_first).first != toast) ) { mToastEventStack.clear(); - mIsHovering = true; + mHoveredToast = toast; } else { @@ -678,7 +683,7 @@ void LLScreenChannel::onToastHover(LLToast* toast, bool mouse_enter) LL_ERRS ("LLScreenChannel::onToastHover: stack size error " ) << stack_size << llendl; } - if(!mIsHovering) + if(!isHovering()) redrawToasts(); } -- cgit v1.2.3 From 3b7ed8a4e9fdff83f89b49760d281ee5c13c8155 Mon Sep 17 00:00:00 2001 From: Alexei Arabadji Date: Thu, 12 Nov 2009 19:08:31 +0200 Subject: related to EXT-2397 "Notification and IM toasts stop to appear after pressing Reply in any IM toast" corrected on hover lost event handling --HG-- branch : product-engine --- indra/newview/llscreenchannel.cpp | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'indra/newview/llscreenchannel.cpp') diff --git a/indra/newview/llscreenchannel.cpp b/indra/newview/llscreenchannel.cpp index 49fdd4f365..ed606d5457 100644 --- a/indra/newview/llscreenchannel.cpp +++ b/indra/newview/llscreenchannel.cpp @@ -655,6 +655,10 @@ void LLScreenChannel::onToastHover(LLToast* toast, bool mouse_enter) { mHoveredToast = toast; } + else + { + mHoveredToast = NULL; + } switch(stack_size) { -- cgit v1.2.3 From 8039b75ae8320a03a2a5339e5d0d1238de0335d2 Mon Sep 17 00:00:00 2001 From: Dmitry Oleshko Date: Fri, 13 Nov 2009 15:56:47 +0200 Subject: fixed normal bug (EXT-1217) Non-interactive notifications in queue aren't dismissed when overflow toast is dismissed proactively returned a call to the appropriate function "onOverflowToastHide" that was brocen by commit r2150 to SVN --HG-- branch : product-engine --- indra/newview/llscreenchannel.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'indra/newview/llscreenchannel.cpp') diff --git a/indra/newview/llscreenchannel.cpp b/indra/newview/llscreenchannel.cpp index ed606d5457..81eb133b07 100644 --- a/indra/newview/llscreenchannel.cpp +++ b/indra/newview/llscreenchannel.cpp @@ -455,7 +455,7 @@ void LLScreenChannel::createOverflowToast(S32 bottom, F32 timer) if(!mOverflowToastPanel) return; - mOverflowToastPanel->setOnFadeCallback(boost::bind(&LLScreenChannel::closeOverflowToastPanel, this)); + mOverflowToastPanel->setOnFadeCallback(boost::bind(&LLScreenChannel::onOverflowToastHide, this)); LLTextBox* text_box = mOverflowToastPanel->getChild("toast_text"); std::string text = llformat(mOverflowFormatString.c_str(),mHiddenToastsNum); -- cgit v1.2.3