From 8da56ac873d5bb083b7cfe08aeefdaa2ad9a4b99 Mon Sep 17 00:00:00 2001 From: Marcel Hollerbach Date: Mon, 6 Aug 2018 15:02:19 +0200 Subject: [PATCH] efl_ui_composition: remove all children in invalidate When the element that iherits from composition is invalidated, all items should be unregistered. fix T7213 Differential Revision: https://phab.enlightenment.org/D6755 --- src/lib/elementary/efl_ui_focus_composition.c | 9 +++++++++ src/lib/elementary/efl_ui_focus_composition.eo | 1 + 2 files changed, 10 insertions(+) diff --git a/src/lib/elementary/efl_ui_focus_composition.c b/src/lib/elementary/efl_ui_focus_composition.c index 57c45ad35b..d62f1e4ed3 100644 --- a/src/lib/elementary/efl_ui_focus_composition.c +++ b/src/lib/elementary/efl_ui_focus_composition.c @@ -225,6 +225,15 @@ _efl_ui_focus_composition_logical_mode_get(const Eo *obj EINA_UNUSED, Efl_Ui_Foc return pd->logical; } +EOLIAN static void +_efl_ui_focus_composition_efl_object_invalidate(Eo *obj, Efl_Ui_Focus_Composition_Data *pd EINA_UNUSED) +{ + efl_invalidate(efl_super(obj, MY_CLASS)); + + efl_ui_focus_composition_elements_set(obj, NULL); +} + + #include "efl_ui_focus_composition.eo.c" typedef struct { diff --git a/src/lib/elementary/efl_ui_focus_composition.eo b/src/lib/elementary/efl_ui_focus_composition.eo index 0654db8b97..2befe106b0 100644 --- a/src/lib/elementary/efl_ui_focus_composition.eo +++ b/src/lib/elementary/efl_ui_focus_composition.eo @@ -46,6 +46,7 @@ mixin Efl.Ui.Focus.Composition (Efl.Interface, Efl.Ui.Widget) { } } implements { + Efl.Object.invalidate; Efl.Ui.Widget.focus_state_apply; Efl.Ui.Focus.Object.prepare_logical_none_recursive; @empty .prepare;