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;