efl_ui_focus_manager_sub: register the forwared itself
authorMarcel Hollerbach <marcel-hollerbach@t-online.de>
Wed, 7 Dec 2016 21:27:36 +0000 (22:27 +0100)
committerMarcel Hollerbach <marcel-hollerbach@t-online.de>
Thu, 20 Apr 2017 12:38:57 +0000 (14:38 +0200)
src/lib/elementary/efl_ui_focus_manager_sub.c
src/lib/elementary/efl_ui_focus_manager_sub.eo

index a610d55..89b6b4e 100644 (file)
@@ -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*
index d936fff..6fb78ef 100644 (file)
@@ -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 {
     }