bu5hm4n pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=0df0d9d358004d2e3f94e163f6818896a5e65e1e

commit 0df0d9d358004d2e3f94e163f6818896a5e65e1e
Author: Marcel Hollerbach <[email protected]>
Date:   Wed Dec 7 22:27:36 2016 +0100

    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 a610d55..89b6b4e 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 d936fff..6fb78ef 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 {
     }

-- 


Reply via email to