From 0df0d9d358004d2e3f94e163f6818896a5e65e1e Mon Sep 17 00:00:00 2001 From: Marcel Hollerbach Date: Wed, 7 Dec 2016 22:27:36 +0100 Subject: [PATCH] efl_ui_focus_manager_sub: register the forwared itself --- src/lib/elementary/efl_ui_focus_manager_sub.c | 13 +++++++++++-- src/lib/elementary/efl_ui_focus_manager_sub.eo | 2 ++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/lib/elementary/efl_ui_focus_manager_sub.c b/src/lib/elementary/efl_ui_focus_manager_sub.c index a610d55394..89b6b4e8e8 100644 --- a/src/lib/elementary/efl_ui_focus_manager_sub.c +++ b/src/lib/elementary/efl_ui_focus_manager_sub.c @@ -167,9 +167,18 @@ EFL_CALLBACKS_ARRAY_DEFINE(self_manager, EOLIAN static void _efl_ui_focus_manager_sub_efl_object_parent_set(Eo *obj, Efl_Ui_Focus_Manager_Sub_Data *pd EINA_UNUSED, Efl_Object *parent) { - efl_event_callback_array_del(efl_parent_get(obj), self_manager(), obj); + Eo *old_parent, *new_parent; + + old_parent = efl_parent_get(obj); + + efl_event_callback_forwarder_del(obj, EFL_UI_FOCUS_MANAGER_EVENT_PRE_FLUSH, old_parent); + efl_event_callback_array_del(old_parent, self_manager(), obj); + efl_parent_set(efl_super(obj, MY_CLASS), parent); - efl_event_callback_array_add(efl_parent_get(obj), self_manager(), obj); + + new_parent = efl_parent_get(obj); + efl_event_callback_forwarder_add(obj, EFL_UI_FOCUS_MANAGER_EVENT_PRE_FLUSH, new_parent); + efl_event_callback_array_add(new_parent, self_manager(), obj); } EOLIAN static Efl_Object* diff --git a/src/lib/elementary/efl_ui_focus_manager_sub.eo b/src/lib/elementary/efl_ui_focus_manager_sub.eo index d936fff749..6fb78ef30e 100644 --- a/src/lib/elementary/efl_ui_focus_manager_sub.eo +++ b/src/lib/elementary/efl_ui_focus_manager_sub.eo @@ -9,6 +9,8 @@ class Efl.Ui.Focus.Manager.Sub (Efl.Ui.Focus.Manager, Efl.Object) You can filter the border elements by overriding the border_elements property of the manager. This class is only working as composite object to a Efl.Ui.Focus.User and Efl.Ui.Focus.Object. + + The object itself does redirect the managers settings to the object where this object is attached ]] methods { }