summaryrefslogtreecommitdiff
path: root/indra/llui/llfloater.cpp
diff options
context:
space:
mode:
authorDmitry Zaporozhan <dzaporozhan@productengine.com>2009-11-23 15:53:19 +0200
committerDmitry Zaporozhan <dzaporozhan@productengine.com>2009-11-23 15:53:19 +0200
commit25085a67f4baf341f1ebc26d7ba21e294ec56302 (patch)
tree296235a869f73af24b274dd42cc07fcf31d1ce19 /indra/llui/llfloater.cpp
parent9f0dbcf4c0c6c8621c377fd7f9e417aa76acd836 (diff)
parentd2cee29e8a039e3cac5c851b4e770b9c7e1095f0 (diff)
Merge
--HG-- branch : product-engine
Diffstat (limited to 'indra/llui/llfloater.cpp')
-rw-r--r--indra/llui/llfloater.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/indra/llui/llfloater.cpp b/indra/llui/llfloater.cpp
index 2a0dcaf333..bf965e8e28 100644
--- a/indra/llui/llfloater.cpp
+++ b/indra/llui/llfloater.cpp
@@ -2526,8 +2526,12 @@ void LLFloaterView::pushVisibleAll(BOOL visible, const skip_list_t& skip_list)
void LLFloaterView::popVisibleAll(const skip_list_t& skip_list)
{
- for (child_list_const_iter_t child_iter = getChildList()->begin();
- child_iter != getChildList()->end(); ++child_iter)
+ // make a copy of the list since some floaters change their
+ // order in the childList when changing visibility.
+ child_list_t child_list_copy = *getChildList();
+
+ for (child_list_const_iter_t child_iter = child_list_copy.begin();
+ child_iter != child_list_copy.end(); ++child_iter)
{
LLView *view = *child_iter;
if (skip_list.find(view) == skip_list.end())