From 945b126e64c21be9be5146a85fcd0c27b8d1682e Mon Sep 17 00:00:00 2001 From: lisyarus Date: Mon, 23 May 2022 20:41:43 +0300 Subject: [PATCH] Post mouseover callback when ui::selector is removed from it's parent --- libs/ui/include/psemek/ui/selector.hpp | 2 ++ libs/ui/source/selector.cpp | 8 ++++++++ 2 files changed, 10 insertions(+) diff --git a/libs/ui/include/psemek/ui/selector.hpp b/libs/ui/include/psemek/ui/selector.hpp index 8b94bead..e5f14de6 100644 --- a/libs/ui/include/psemek/ui/selector.hpp +++ b/libs/ui/include/psemek/ui/selector.hpp @@ -14,6 +14,8 @@ namespace psemek::ui selector(); ~selector() override; + void set_parent(element * parent) override; + children_range children() const override { return children_range_; } struct shape const & shape() const override { return shape_; } diff --git a/libs/ui/source/selector.cpp b/libs/ui/source/selector.cpp index 4bdcc6f9..6041e11b 100644 --- a/libs/ui/source/selector.cpp +++ b/libs/ui/source/selector.cpp @@ -21,6 +21,14 @@ namespace psemek::ui release_children(); } + void selector::set_parent(element * parent) + { + if (!parent && mouseover_callback_) + post([cb = mouseover_callback_]{ cb(std::nullopt); }); + + element::set_parent(parent); + } + void selector::reshape(geom::box const & box) { shape_.box = box;