diff --git a/source/gui/detail/window_manager.cpp b/source/gui/detail/window_manager.cpp index 2a98269e..785f45be 100644 --- a/source/gui/detail/window_manager.cpp +++ b/source/gui/detail/window_manager.cpp @@ -950,6 +950,19 @@ namespace detail if (wd->dimension == sz) return false; + std::vector presence; + + if (wd->dimension.width < sz.width || wd->dimension.height < sz.height) + { + auto wd_r = rectangle{ wd->dimension }; + for (auto child : wd->children) + { + auto child_r = rectangle{ child->pos_owner, child->dimension }; + if (!overlapped(wd_r, child_r)) + presence.push_back(child); + } + } + //Before resiz the window, creates the new graphics paint::graphics graph; paint::graphics root_graph; @@ -1010,6 +1023,11 @@ namespace detail } } + for (auto child : presence) + { + refresh_tree(child); + } + arg_resized arg; arg.window_handle = reinterpret_cast(wd); arg.width = sz.width;