diff options
Diffstat (limited to '')
-rw-r--r-- | linden/indra/llui/llfloater.cpp | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/linden/indra/llui/llfloater.cpp b/linden/indra/llui/llfloater.cpp index 5c46d54..f6451a1 100644 --- a/linden/indra/llui/llfloater.cpp +++ b/linden/indra/llui/llfloater.cpp | |||
@@ -2171,6 +2171,37 @@ void LLFloaterView::destroyAllChildren() | |||
2171 | LLView::deleteAllChildren(); | 2171 | LLView::deleteAllChildren(); |
2172 | } | 2172 | } |
2173 | 2173 | ||
2174 | void LLFloaterView::minimizeAllChildren() | ||
2175 | { | ||
2176 | // iterate over a copy of the list, because closing windows will destroy | ||
2177 | // some windows on the list. | ||
2178 | child_list_t child_list = *(getChildList()); | ||
2179 | |||
2180 | for (child_list_const_iter_t it = child_list.begin(); it != child_list.end(); ++it) | ||
2181 | { | ||
2182 | LLView* viewp = *it; | ||
2183 | child_list_const_iter_t exists = std::find(getChildList()->begin(), getChildList()->end(), viewp); | ||
2184 | if (exists == getChildList()->end()) | ||
2185 | { | ||
2186 | // this floater has already been removed | ||
2187 | continue; | ||
2188 | } | ||
2189 | |||
2190 | LLFloater* floaterp = (LLFloater*)viewp; | ||
2191 | |||
2192 | if (floaterp) | ||
2193 | { | ||
2194 | if (!floaterp->isDead() | ||
2195 | && floaterp->getVisible() | ||
2196 | && floaterp->isMinimizeable() | ||
2197 | && !floaterp->isMinimized()) | ||
2198 | { | ||
2199 | floaterp->setMinimized(TRUE); | ||
2200 | } | ||
2201 | } | ||
2202 | } | ||
2203 | } | ||
2204 | |||
2174 | void LLFloaterView::closeAllChildren(bool app_quitting) | 2205 | void LLFloaterView::closeAllChildren(bool app_quitting) |
2175 | { | 2206 | { |
2176 | // iterate over a copy of the list, because closing windows will destroy | 2207 | // iterate over a copy of the list, because closing windows will destroy |