summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcel Hollerbach <marcel-hollerbach@t-online.de>2016-12-07 22:27:36 +0100
committerMarcel Hollerbach <marcel-hollerbach@t-online.de>2017-04-19 13:31:58 +0200
commit2c09acc75a324496553060ac6ad9af706f157a3a (patch)
treeebe82112c6d2cb14a849ea8de9803bec9650528f
parent5113b01f6e5196fadca54080cb6ae1d3cbf4665b (diff)
downloadefl-2c09acc75a324496553060ac6ad9af706f157a3a.tar.gz
efl_ui_focus_manager_sub: register the forwared itself
-rw-r--r--src/lib/elementary/efl_ui_focus_manager_sub.c13
-rw-r--r--src/lib/elementary/efl_ui_focus_manager_sub.eo2
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 {
}