From 63251d8b31b14b55912d9117f1b508db31e52582 Mon Sep 17 00:00:00 2001 From: Alexei Arabadji Date: Fri, 19 Mar 2010 17:17:00 +0200 Subject: =?UTF-8?q?opened=20and=20fixed=20EXT-6478=20=E2=80=9CLoggable=20m?= =?UTF-8?q?essages=20that=20not=20increments=20IM=20counter=20doesn't=20sh?= =?UTF-8?q?ows=20in=20IM=20window=E2=80=9D,=20added=20update=20of=20IM=20f?= =?UTF-8?q?loater=20messages=20on=20logging=20to=20IM=20session;=20reviewe?= =?UTF-8?q?d=20by=20Mike=20Antipov=20at=20https://codereview.productengine?= =?UTF-8?q?.com/secondlife/r/75/?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --HG-- branch : product-engine --- indra/newview/llnotificationhandler.h | 5 +++++ indra/newview/llnotificationhandlerutil.cpp | 19 ++++++++++++++----- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/indra/newview/llnotificationhandler.h b/indra/newview/llnotificationhandler.h index 62daf5f105..62008b91a0 100644 --- a/indra/newview/llnotificationhandler.h +++ b/indra/newview/llnotificationhandler.h @@ -356,6 +356,11 @@ public: */ static void addNotifPanelToIM(const LLNotificationPtr& notification); + /** + * Updates messages of IM floater. + */ + static void updateIMFLoaterMesages(const LLUUID& session_id); + /** * Updates messages of visible IM floater. */ diff --git a/indra/newview/llnotificationhandlerutil.cpp b/indra/newview/llnotificationhandlerutil.cpp index ae41e673bf..6d4c360f08 100644 --- a/indra/newview/llnotificationhandlerutil.cpp +++ b/indra/newview/llnotificationhandlerutil.cpp @@ -252,6 +252,9 @@ void LLHandlerUtil::logToIM(const EInstantMessage& session_type, session->mNumUnread = unread; session->mParticipantUnreadMessageCount = participant_unread; + // update IM floater messages + updateIMFLoaterMesages(session_id); + // restore active session id if (active_session_id.isNull()) { @@ -413,12 +416,8 @@ void LLHandlerUtil::addNotifPanelToIM(const LLNotificationPtr& notification) } // static -void LLHandlerUtil::updateVisibleIMFLoaterMesages(const LLNotificationPtr& notification) +void LLHandlerUtil::updateIMFLoaterMesages(const LLUUID& session_id) { - const std::string name = LLHandlerUtil::getSubstitutionName(notification); - LLUUID from_id = notification->getPayload()["from_id"]; - LLUUID session_id = spawnIMSession(name, from_id); - LLIMFloater* im_floater = LLIMFloater::findInstance(session_id); if (im_floater != NULL && im_floater->getVisible()) { @@ -426,6 +425,16 @@ void LLHandlerUtil::updateVisibleIMFLoaterMesages(const LLNotificationPtr& notif } } +// static +void LLHandlerUtil::updateVisibleIMFLoaterMesages(const LLNotificationPtr& notification) +{ + const std::string name = LLHandlerUtil::getSubstitutionName(notification); + LLUUID from_id = notification->getPayload()["from_id"]; + LLUUID session_id = spawnIMSession(name, from_id); + + updateIMFLoaterMesages(session_id); +} + // static void LLHandlerUtil::decIMMesageCounter(const LLNotificationPtr& notification) { -- cgit v1.2.3