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;
 

-- 


Reply via email to