summaryrefslogtreecommitdiff
path: root/indra/newview/llfloaterimcontainer.cpp
diff options
context:
space:
mode:
authorMnikolenko Productengine <mnikolenko@productengine.com>2021-10-25 21:23:26 +0300
committerMnikolenko Productengine <mnikolenko@productengine.com>2021-10-25 21:23:26 +0300
commita5b1c013542d93be3b4cac820f32000fa5e3cfd4 (patch)
tree1da31a624a23b2305e6631eb06765ee9da73ecf7 /indra/newview/llfloaterimcontainer.cpp
parentc173b07b72ac3e30c019cbee8dba53401c781be3 (diff)
SL-16234 handle closing floater correctly
Diffstat (limited to 'indra/newview/llfloaterimcontainer.cpp')
-rw-r--r--indra/newview/llfloaterimcontainer.cpp40
1 files changed, 19 insertions, 21 deletions
diff --git a/indra/newview/llfloaterimcontainer.cpp b/indra/newview/llfloaterimcontainer.cpp
index 2ccb9ab074..112ece0fbf 100644
--- a/indra/newview/llfloaterimcontainer.cpp
+++ b/indra/newview/llfloaterimcontainer.cpp
@@ -724,11 +724,6 @@ void LLFloaterIMContainer::setMinimized(BOOL b)
void LLFloaterIMContainer::setVisible(BOOL visible)
{
- if (LLFloater::isQuitRequested())
- {
- return;
- }
-
LLFloaterIMNearbyChat* nearby_chat;
if (visible)
{
@@ -764,22 +759,25 @@ void LLFloaterIMContainer::setVisible(BOOL visible)
LLFloaterIMSessionTab::addToHost(LLUUID());
}
- // We need to show/hide all the associated conversations that have been torn off
- // (and therefore, are not longer managed by the multifloater),
- // so that they show/hide with the conversations manager.
- conversations_widgets_map::iterator widget_it = mConversationsWidgets.begin();
- for (;widget_it != mConversationsWidgets.end(); ++widget_it)
- {
- LLConversationViewSession* widget = dynamic_cast<LLConversationViewSession*>(widget_it->second);
- if (widget)
- {
- LLFloater* session_floater = widget->getSessionFloater();
- if (session_floater != nearby_chat)
- {
- widget->setVisibleIfDetached(visible);
- }
- }
- }
+ if (!LLFloater::isQuitRequested())
+ {
+ // We need to show/hide all the associated conversations that have been torn off
+ // (and therefore, are not longer managed by the multifloater),
+ // so that they show/hide with the conversations manager.
+ conversations_widgets_map::iterator widget_it = mConversationsWidgets.begin();
+ for (; widget_it != mConversationsWidgets.end(); ++widget_it)
+ {
+ LLConversationViewSession* widget = dynamic_cast<LLConversationViewSession*>(widget_it->second);
+ if (widget)
+ {
+ LLFloater* session_floater = widget->getSessionFloater();
+ if (session_floater != nearby_chat)
+ {
+ widget->setVisibleIfDetached(visible);
+ }
+ }
+ }
+ }
// Now, do the normal multifloater show/hide
LLMultiFloater::setVisible(visible);