From 886eac6be47d351a4847028e43ab79e77e824325 Mon Sep 17 00:00:00 2001 From: Jinhao Date: Sun, 6 Aug 2017 09:48:06 +0800 Subject: [PATCH] remove sync_child_root_display function The display state of root widget(nested_form) now no longer depends on its parent widget's visibility. Otherwise, the solution is complicated and error-prone, it is impossible to maintain the correct state when the visibility of root widget is changed directly by system API. --- source/gui/detail/window_manager.cpp | 31 ---------------------------- 1 file changed, 31 deletions(-) diff --git a/source/gui/detail/window_manager.cpp b/source/gui/detail/window_manager.cpp index 6d1ce3ca..159cfdc6 100644 --- a/source/gui/detail/window_manager.cpp +++ b/source/gui/detail/window_manager.cpp @@ -733,30 +733,6 @@ namespace detail } } - void sync_child_root_display(window_manager::core_window_t* wd) - { - for (auto & child : wd->children) - { - if (category::flags::root != child->other.category) - { - sync_child_root_display(child); - continue; - } - - auto const vs_parents = child->visible_parents(); - - if (vs_parents != child->visible) - { - native_interface::show_window(child->root, vs_parents, false); - } - else - { - if (child->visible != native_interface::is_window_visible(child->root)) - native_interface::show_window(child->root, child->visible, false); - } - } - } - //show //@brief: show or hide a window bool window_manager::show(core_window_t* wd, bool visible) @@ -792,14 +768,7 @@ namespace detail bedrock::instance().event_expose(wd, visible); if (nv) - { - if (visible && !wd->visible_parents()) - return true; - native_interface::show_window(nv, visible, wd->flags.take_active); - } - - sync_child_root_display(wd); } return true; }