diff options
| author | Mnikolenko Productengine <mnikolenko@productengine.com> | 2021-10-25 21:23:26 +0300 | 
|---|---|---|
| committer | Mnikolenko Productengine <mnikolenko@productengine.com> | 2021-10-25 21:23:26 +0300 | 
| commit | a5b1c013542d93be3b4cac820f32000fa5e3cfd4 (patch) | |
| tree | 1da31a624a23b2305e6631eb06765ee9da73ecf7 | |
| parent | c173b07b72ac3e30c019cbee8dba53401c781be3 (diff) | |
SL-16234 handle closing floater correctly
| -rw-r--r-- | indra/newview/llfloaterimcontainer.cpp | 40 | 
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); | 
