From 5f7d3268e3d2ea84a1afc97c209b703bf4092c76 Mon Sep 17 00:00:00 2001 From: crupest Date: Thu, 20 Sep 2018 22:50:37 +0800 Subject: Improve linear layout. --- CruUI/ui/layout_base.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'CruUI/ui/layout_base.cpp') diff --git a/CruUI/ui/layout_base.cpp b/CruUI/ui/layout_base.cpp index a589d2ea..a26379a0 100644 --- a/CruUI/ui/layout_base.cpp +++ b/CruUI/ui/layout_base.cpp @@ -17,11 +17,13 @@ namespace cru::ui return; // find descendant then erase it; find ancestor then just return. - for (auto i = cache_invalid_controls_.cbegin(); i != cache_invalid_controls_.cend(); ++i) + auto i = cache_invalid_controls_.cbegin(); + while (i != cache_invalid_controls_.cend()) { - const auto result = IsAncestorOrDescendant(*i, control); + auto current_i = i++; + const auto result = IsAncestorOrDescendant(*current_i, control); if (result == control) - cache_invalid_controls_.erase(i); + cache_invalid_controls_.erase(current_i); else if (result != nullptr) return; // find a ancestor of "control", just return } -- cgit v1.2.3