From: Carsten Haitzler (Rasterman) Date: Tue, 9 Jun 2015 05:29:25 +0000 (+0900) Subject: e - shelf menu - handle deletion properly if cb is not for shelf menu X-Git-Tag: upstream/0.20.0~804 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=774e8297d20802fd4b1a868bfc5f8f6507f61e69;p=platform%2Fupstream%2Fenlightenment.git e - shelf menu - handle deletion properly if cb is not for shelf menu it seems that some changes now make the shel menu post callback be called for older menus not part of the shelf and thus shelf menu stored != menu the cb is for - thus resulting in deletion of the wrong menu --- diff --git a/src/bin/e_shelf.c b/src/bin/e_shelf.c index ee87d0b..d138778 100644 --- a/src/bin/e_shelf.c +++ b/src/bin/e_shelf.c @@ -1614,13 +1614,13 @@ _e_shelf_cb_menu_delete(void *data, E_Menu *m EINA_UNUSED, E_Menu_Item *mi EINA_ } static void -_e_shelf_cb_menu_post(void *data, E_Menu *m EINA_UNUSED) +_e_shelf_cb_menu_post(void *data, E_Menu *m) { E_Shelf *es; es = data; - if (!es->menu) return; - e_object_del(E_OBJECT(es->menu)); + e_object_del(E_OBJECT(m)); + if (m != es->menu) return; es->menu = NULL; }