From 03acb43dc4cdbf132ba2e584892d66b55bc6fcb4 Mon Sep 17 00:00:00 2001 From: lisyarus Date: Sat, 6 Mar 2021 10:56:38 +0300 Subject: [PATCH] Don't draw or send events to hidden ui children --- libs/ui/source/controller.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/libs/ui/source/controller.cpp b/libs/ui/source/controller.cpp index 347c2d89..f0df848e 100644 --- a/libs/ui/source/controller.cpp +++ b/libs/ui/source/controller.cpp @@ -81,6 +81,8 @@ namespace psemek::ui bool controller::impl::event(E const & e) { auto visitor = util::recursive([&](auto && self, element * elem) -> bool { + if (elem->hidden()) return false; + auto cs = elem->children(); for (auto it = cs.rbegin(); it != cs.rend(); ++it) if (*it && self(*it)) return true; @@ -182,6 +184,7 @@ namespace psemek::ui gl::Disable(gl::CULL_FACE); auto visitor = util::recursive([&](auto && self, element * elem) -> void { + if (elem->hidden()) return; elem->draw(impl().painter); for (auto c : elem->children()) if (c) self(c);