From 317968efa8e4ea1efb2d1757b60046c0f67920c0 Mon Sep 17 00:00:00 2001 From: "Carsten Haitzler (Rasterman)" Date: Tue, 28 May 2013 21:03:07 +0900 Subject: [PATCH] fix efm segv on single click due to out callbacks being called while deleting objects etc. --- src/bin/e_fm.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/bin/e_fm.c b/src/bin/e_fm.c index 61259474b..95d125c66 100644 --- a/src/bin/e_fm.c +++ b/src/bin/e_fm.c @@ -3441,7 +3441,6 @@ _e_fm2_file_del(Evas_Object *obj, const char *file) ic->region = NULL; } _e_fm2_icon_free(ic); - printf("b: %i\n", eina_list_count(sd->icons)); return; } } @@ -4905,6 +4904,11 @@ _e_fm2_icon_unrealize(E_Fm2_Icon *ic) ic->realized = EINA_FALSE; evas_object_del(ic->obj); ic->obj = NULL; + evas_object_event_callback_del_full(ic->rect, EVAS_CALLBACK_MOUSE_DOWN, _e_fm2_cb_icon_mouse_down, ic); + evas_object_event_callback_del_full(ic->rect, EVAS_CALLBACK_MOUSE_UP, _e_fm2_cb_icon_mouse_up, ic); + evas_object_event_callback_del_full(ic->rect, EVAS_CALLBACK_MOUSE_MOVE, _e_fm2_cb_icon_mouse_move, ic); + evas_object_event_callback_del_full(ic->rect, EVAS_CALLBACK_MOUSE_IN, _e_fm2_cb_icon_mouse_in, ic); + evas_object_event_callback_del_full(ic->rect, EVAS_CALLBACK_MOUSE_OUT, _e_fm2_cb_icon_mouse_out, ic); evas_object_del(ic->rect); ic->rect = NULL; evas_object_del(ic->obj_icon);