From 1ac4a03d4fbef8ada70a491d15174c8ad93752ef Mon Sep 17 00:00:00 2001 From: Cedric BAIL Date: Tue, 26 Sep 2017 15:21:12 -0700 Subject: [PATCH] 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)