cedric pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=1ac4a03d4fbef8ada70a491d15174c8ad93752ef

commit 1ac4a03d4fbef8ada70a491d15174c8ad93752ef
Author: Cedric BAIL <[email protected]>
Date:   Tue Sep 26 15:21:12 2017 -0700

    elementary: avoid segfault when getting focus due to an infinite recursion.
    
    This was two line switched and setting the callbacks on the wrong object.
---
 src/lib/elementary/efl_ui_win.c | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/src/lib/elementary/efl_ui_win.c b/src/lib/elementary/efl_ui_win.c
index b70efcc118..7a2a03be6e 100644
--- a/src/lib/elementary/efl_ui_win.c
+++ b/src/lib/elementary/efl_ui_win.c
@@ -2829,9 +2829,9 @@ _efl_ui_win_efl_canvas_group_group_del(Eo *obj, 
Efl_Ui_Win_Data *sd)
                                        
_elm_win_on_resize_obj_changed_size_hints,
                                        obj);
 
-   efl_event_callback_array_del(obj, _elm_evas_tracking(), sd);
+   efl_event_callback_array_del(sd->evas, _elm_evas_tracking(), sd);
    efl_event_callback_array_del(obj, _elm_win_evas_feed_fake_callbacks(), 
sd->evas);
-   efl_event_callback_array_del(sd->evas, _elm_win_tracking(), sd);
+   efl_event_callback_array_del(obj, _elm_win_tracking(), sd);
    evas_object_del(sd->legacy.box);
    evas_object_del(sd->legacy.edje);
 
@@ -5347,10 +5347,9 @@ _elm_win_finalize_internal(Eo *obj, Efl_Ui_Win_Data *sd, 
const char *name, Elm_W
    // attach config API
    efl_composite_attach(obj, efl_provider_find(ecore_main_loop_get(), 
EFL_CONFIG_GLOBAL_CLASS));
 
+   efl_event_callback_array_add(sd->evas, _elm_evas_tracking(), sd);
    efl_event_callback_array_add(obj, _elm_win_evas_feed_fake_callbacks(), 
sd->evas);
-   efl_event_callback_array_add(obj, _elm_evas_tracking(), sd);
-
-   efl_event_callback_array_add(sd->evas, _elm_win_tracking(), sd);
+   efl_event_callback_array_add(obj, _elm_win_tracking(), sd);
    evas_object_show(sd->legacy.edje);
 
    if (type == ELM_WIN_FAKE)

-- 


Reply via email to