aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarcel Hollerbach <mail@marcel-hollerbach.de>2018-08-06 15:02:19 +0200
committerMarcel Hollerbach <mail@marcel-hollerbach.de>2018-08-20 11:56:19 +0200
commit8da56ac873d5bb083b7cfe08aeefdaa2ad9a4b99 (patch)
tree9c35271f1a25e0315fc14109d5ae297e127711cf
parentelm/win: check object class before using it (diff)
downloadefl-8da56ac873d5bb083b7cfe08aeefdaa2ad9a4b99.tar.gz
efl_ui_composition: remove all children in invalidate
When the element that iherits from composition is invalidated, all items should be unregistered. fix https://phab.enlightenment.org/T7213 Differential Revision: https://phab.enlightenment.org/D6755
-rw-r--r--src/lib/elementary/efl_ui_focus_composition.c9
-rw-r--r--src/lib/elementary/efl_ui_focus_composition.eo1
2 files changed, 10 insertions, 0 deletions
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;