From 72032eb8863b0ad39e5d731c30070d17feb9b06b Mon Sep 17 00:00:00 2001 From: Mike Antipov Date: Mon, 14 Dec 2009 12:18:28 +0200 Subject: Improvements for normal task EXT-3147 (Implement new states for message indicators) -- Fixed: wells should flash every time new message arrives even if "new message" state is already set -- Also fixed: Well leaves in 'Lit' state if incomeing notification is resolved while flashing to the "Lit" state --HG-- branch : product-engine --- indra/newview/llchiclet.cpp | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'indra') diff --git a/indra/newview/llchiclet.cpp b/indra/newview/llchiclet.cpp index 9671c048ef..960d9e02b2 100644 --- a/indra/newview/llchiclet.cpp +++ b/indra/newview/llchiclet.cpp @@ -112,6 +112,11 @@ public: mEventTimer.start(); } + void stopFlashing() + { + mEventTimer.stop(); + } + private: callback_t mCallback; S32 mFlashCount; @@ -174,10 +179,18 @@ void LLSysWellChiclet::setCounter(S32 counter) */ mButton->setForcePressedState(counter > 0); - if (mCounter == 0 && counter > 0) + // we have to flash to 'Lit' state each time new unread message is comming. + if (counter > mCounter) { mFlashToLitTimer->flash(); } + else if (counter == 0) + { + // if notification is resolved while well is flashing it can leave in the 'Lit' state + // when flashing finishes itself. Let break flashing here. + mFlashToLitTimer->stopFlashing(); + } + mCounter = counter; } -- cgit v1.2.3