diff options
| author | Tofu Linden <tofu.linden@lindenlab.com> | 2009-11-23 15:53:49 +0000 |
|---|---|---|
| committer | Tofu Linden <tofu.linden@lindenlab.com> | 2009-11-23 15:53:49 +0000 |
| commit | a434e32097ca59c19a7c38aeae6b1991272569df (patch) | |
| tree | 34237f1926aee21a80f977e5b363a7c0a8592b21 /indra/llui/llfloater.cpp | |
| parent | 21723e85677c69c4f78946d971bbf0e0c9cd37e5 (diff) | |
| parent | 1b07c1d7fb5b6d3ce15083bc3dbb65a3f0ac8006 (diff) | |
merge.
Diffstat (limited to 'indra/llui/llfloater.cpp')
| -rw-r--r-- | indra/llui/llfloater.cpp | 8 |
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()) |
