From f1febd3afa47046b90d17a4ee7263097ec537ab2 Mon Sep 17 00:00:00 2001 From: Daniel Juyung Seo Date: Wed, 17 Oct 2012 02:43:50 +0000 Subject: [PATCH] elm test_map.c: Fixed infinite menu creation bug. Remove menu on map deletion. Patch by Bluezery SVN revision: 78098 --- legacy/elementary/src/bin/test_map.c | 33 ++++++++++++++++------------ 1 file changed, 19 insertions(+), 14 deletions(-) diff --git a/legacy/elementary/src/bin/test_map.c b/legacy/elementary/src/bin/test_map.c index 2076c7192a..729ba6a13e 100644 --- a/legacy/elementary/src/bin/test_map.c +++ b/legacy/elementary/src/bin/test_map.c @@ -836,20 +836,23 @@ _map_mouse_down(void *data, Evas *evas __UNUSED__, Evas_Object *obj, void *event { down_x = down->canvas.x; down_y = down->canvas.y; - menu = elm_menu_add(obj); - menu_it = elm_menu_item_add(menu, NULL, "", "Source", NULL, NULL); - _submenu_src_add(data, menu_it); - menu_it = elm_menu_item_add(menu, NULL, "", "Move", NULL, NULL); - _submenu_move_add(data, menu_it); - menu_it = elm_menu_item_add(menu, NULL, "", "Zoom", NULL, NULL); - _submenu_zoom_add(data, menu_it); - menu_it = elm_menu_item_add(menu, NULL, "", "Prop", NULL, NULL); - _submenu_prop_add(data, menu_it); - menu_it = elm_menu_item_add(menu, NULL, "", "Track", NULL, NULL); - _submenu_track_add(data, menu_it); - menu_it = elm_menu_item_add(menu, NULL, "", "Overlay", NULL, NULL); - _submenu_ovl_add(data, menu_it); - + if (!menu) + { + menu = elm_menu_add(obj); + elm_menu_parent_set(menu, obj); + menu_it = elm_menu_item_add(menu, NULL, "", "Source", NULL, NULL); + _submenu_src_add(data, menu_it); + menu_it = elm_menu_item_add(menu, NULL, "", "Move", NULL, NULL); + _submenu_move_add(data, menu_it); + menu_it = elm_menu_item_add(menu, NULL, "", "Zoom", NULL, NULL); + _submenu_zoom_add(data, menu_it); + menu_it = elm_menu_item_add(menu, NULL, "", "Prop", NULL, NULL); + _submenu_prop_add(data, menu_it); + menu_it = elm_menu_item_add(menu, NULL, "", "Track", NULL, NULL); + _submenu_track_add(data, menu_it); + menu_it = elm_menu_item_add(menu, NULL, "", "Overlay", NULL, NULL); + _submenu_ovl_add(data, menu_it); + } elm_menu_move(menu, down->canvas.x, down->canvas.y); evas_object_show(menu); } @@ -997,8 +1000,10 @@ _del_map(void *data __UNUSED__, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, if (route) elm_map_route_del(route); if (name) elm_map_name_del(name); + if (menu) evas_object_del(menu); route = NULL; name = NULL; + menu = NULL; } void