diff options
author | Marcel Hollerbach <marcel-hollerbach@t-online.de> | 2016-12-07 22:27:36 +0100 |
---|---|---|
committer | Marcel Hollerbach <marcel-hollerbach@t-online.de> | 2017-04-19 13:31:58 +0200 |
commit | 2c09acc75a324496553060ac6ad9af706f157a3a (patch) | |
tree | ebe82112c6d2cb14a849ea8de9803bec9650528f | |
parent | 5113b01f6e5196fadca54080cb6ae1d3cbf4665b (diff) | |
download | efl-2c09acc75a324496553060ac6ad9af706f157a3a.tar.gz |
efl_ui_focus_manager_sub: register the forwared itself
-rw-r--r-- | src/lib/elementary/efl_ui_focus_manager_sub.c | 13 | ||||
-rw-r--r-- | 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 { } |