From: Enlightenment S. <no-...@en...> - 2009-11-29 00:01:26
|
Log: elm_list: Call the callbacks _last_. Saves segv when the user deletes stuff. Author: nash Date: 2009-11-28 16:01:13 -0800 (Sat, 28 Nov 2009) New Revision: 44037 Modified: trunk/TMP/st/elementary/src/lib/elm_list.c Modified: trunk/TMP/st/elementary/src/lib/elm_list.c =================================================================== --- trunk/TMP/st/elementary/src/lib/elm_list.c 2009-11-28 23:57:54 UTC (rev 44036) +++ trunk/TMP/st/elementary/src/lib/elm_list.c 2009-11-29 00:01:13 UTC (rev 44037) @@ -219,11 +219,12 @@ else wd->on_hold = EINA_FALSE; wd->wasselected = it->selected; _item_hilight(it); - if (ev->flags & EVAS_BUTTON_DOUBLE_CLICK) - evas_object_smart_callback_call(it->obj, "clicked", it); wd->longpressed = EINA_FALSE; if (it->long_timer) ecore_timer_del(it->long_timer); it->long_timer = ecore_timer_add(1.0, _long_press, it); + /* Always call the callbacks last - the user may delete our context! */ + if (ev->flags & EVAS_BUTTON_DOUBLE_CLICK) + evas_object_smart_callback_call(it->obj, "clicked", it); } static void |