diff options
author | PavelK ProductEngine <pavelkproductengine@lindenlab.com> | 2013-04-09 20:50:54 +0300 |
---|---|---|
committer | PavelK ProductEngine <pavelkproductengine@lindenlab.com> | 2013-04-09 20:50:54 +0300 |
commit | fa36f85b007a124c418fd8cfc0e836cc7fdc86cf (patch) | |
tree | 6f111b07c5ab3894fe025477e728917860ef1fe4 /indra/newview/llfloaterimcontainer.cpp | |
parent | 9ab92603ce9ca54d4ef5571196f34ba5f0875286 (diff) |
CHUI-797 FIXED Only one separated conversation window is shown after exiting from mouselook view
Added all separated conversation floaters to skip list used in gFloaterView->popVisibleAll(skip_list) in llagent.cpp
since LLFloaterIMContainer::setVisible() takes control of them by itself.
Diffstat (limited to 'indra/newview/llfloaterimcontainer.cpp')
-rw-r--r-- | indra/newview/llfloaterimcontainer.cpp | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/indra/newview/llfloaterimcontainer.cpp b/indra/newview/llfloaterimcontainer.cpp index f89e818928..8575f6f055 100644 --- a/indra/newview/llfloaterimcontainer.cpp +++ b/indra/newview/llfloaterimcontainer.cpp @@ -54,6 +54,7 @@ #include "llworld.h" #include "llsdserialize.h" #include "llviewerobjectlist.h" +#include "boost/foreach.hpp" // // LLFloaterIMContainer @@ -660,6 +661,23 @@ void LLFloaterIMContainer::setVisible(BOOL visible) LLMultiFloater::setVisible(visible); } +void LLFloaterIMContainer::getDetachedConversationFloaters(floater_list_t& floaters) +{ + typedef conversations_widgets_map::value_type conv_pair; + BOOST_FOREACH(conv_pair item, mConversationsWidgets) + { + LLConversationViewSession* widget = dynamic_cast<LLConversationViewSession*>(item.second); + if (widget) + { + LLFloater* session_floater = widget->getSessionFloater(); + if (session_floater && session_floater->isDetachedAndNotMinimized()) + { + floaters.push_back(session_floater); + } + } + } +} + void LLFloaterIMContainer::setVisibleAndFrontmost(BOOL take_focus, const LLSD& key) { LLMultiFloater::setVisibleAndFrontmost(take_focus, key); |