jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=40be6c958247b7f9d4380fbf5fb485e4bfac68db
commit 40be6c958247b7f9d4380fbf5fb485e4bfac68db Author: Sungtaek Hong <sth253.h...@samsung.com> Date: Tue Sep 19 16:37:00 2017 +0900 elm_map: keep overlays list when showing overlays Summary: In elm_map_overlay_show and elm_map_overlays_show, it frees overlays list members. This lists are used in elm_map_overlay functions, so should remain. Test Plan: 1. Run elementary_test -> Geographic -> Map 2. Click group overlay (whose text is "3") -> bubble appears 3. Click "Show" button -> observe no more Eina Magic Check Failure appear. Reviewers: jpeg, cedric, woohyun Differential Revision: https://phab.enlightenment.org/D5191 --- src/bin/elementary/test_map.c | 22 ++++++++++++++++++++++ src/lib/elementary/elm_map.c | 3 ++- 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/src/bin/elementary/test_map.c b/src/bin/elementary/test_map.c index 69f03a957e..3fe55b9be7 100644 --- a/src/bin/elementary/test_map.c +++ b/src/bin/elementary/test_map.c @@ -97,6 +97,26 @@ _box_get(Evas_Object *obj, Overlay_Data *data, Elm_Map_Overlay *ovl) return bx; } +static void +_overlays_show(void *data, Evas_Object *obj EINA_UNUSED, void *ev EINA_UNUSED) +{ + Eina_List *members = elm_map_overlay_group_members_get(data); + elm_map_overlays_show(members); +} + +static Evas_Object * +_btn_get(Evas_Object *obj, Elm_Map_Overlay *ovl) +{ + Evas_Object *btn; + + btn = elm_button_add(obj); + elm_object_text_set(btn, "Show"); + evas_object_smart_callback_add(btn, "clicked", _overlays_show, ovl); + evas_object_show(btn); + + return btn; +} + static Evas_Object * _label_get(Evas_Object *obj) { @@ -956,6 +976,8 @@ _overlay_cb(void *data EINA_UNUSED, Evas_Object *map, void *ev) elm_map_overlay_bubble_content_append(bubble_img, _box_get(map, od, memb)); } + elm_map_overlay_bubble_content_append(bubble_img, + _btn_get(map, overlay)); } else { diff --git a/src/lib/elementary/elm_map.c b/src/lib/elementary/elm_map.c index bc372a1d18..9fa8d251ad 100644 --- a/src/lib/elementary/elm_map.c +++ b/src/lib/elementary/elm_map.c @@ -1423,8 +1423,9 @@ _region_max_min_get(Eina_List *overlays, double max_lon = -180, min_lon = 180; double max_lat = -90, min_lat = 90; Elm_Map_Overlay *overlay; + Eina_List *l; - EINA_LIST_FREE(overlays, overlay) + EINA_LIST_FOREACH(overlays, l, overlay) { double lon, lat; --