From 0bb87294adb184602ee7d7dcedd646de51a10406 Mon Sep 17 00:00:00 2001 From: Ansariel Date: Tue, 23 Jun 2015 15:56:40 +0200 Subject: [PATCH] Properly snooze group chat in case there is an active group voice call --- indra/newview/fsfloaterim.cpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/indra/newview/fsfloaterim.cpp b/indra/newview/fsfloaterim.cpp index c20dbacf57..5befc2f461 100644 --- a/indra/newview/fsfloaterim.cpp +++ b/indra/newview/fsfloaterim.cpp @@ -229,6 +229,7 @@ void FSFloaterIM::onSnooze() { LLSD payload; payload["session_id"] = mSessionID; + payload["snooze"] = true; LLNotificationsUtil::add("ConfirmLeaveCall", LLSD(), payload, confirmLeaveCallCallback); return; } @@ -1761,10 +1762,23 @@ void FSFloaterIM::confirmLeaveCallCallback(const LLSD& notification, const LLSD& S32 option = LLNotificationsUtil::getSelectedOption(notification, response); const LLSD& payload = notification["payload"]; LLUUID session_id = payload["session_id"]; + bool snooze = payload["snooze"].asBoolean(); LLFloater* im_floater = LLFloaterReg::findInstance("fs_impanel", session_id); if (option == 0 && im_floater != NULL) { + LLIMModel::LLIMSession* session = LLIMModel::instance().findIMSession(session_id); + if (session) + { + if (snooze) + { + session->mCloseAction = LLIMModel::LLIMSession::CLOSE_SNOOZE; + } + else + { + session->mCloseAction = LLIMModel::LLIMSession::CLOSE_DEFAULT; + } + } im_floater->closeFloater(); } @@ -1841,6 +1855,7 @@ void FSFloaterIM::onClickCloseBtn(bool app_quitting) { LLSD payload; payload["session_id"] = mSessionID; + payload["snooze"] = false; LLNotificationsUtil::add("ConfirmLeaveCall", LLSD(), payload, confirmLeaveCallCallback); return; }