elm_map: Fix to show and bring in a correct region after zooming
authorJaehyun Cho <jae_hyun.cho@samsung.com>
Wed, 14 May 2014 03:27:27 +0000 (12:27 +0900)
committerCarsten Haitzler (Rasterman) <raster@rasterman.com>
Wed, 14 May 2014 03:27:27 +0000 (12:27 +0900)
Summary:
Show and bring in a region which has the given latitude and longitude after zooming
@fix

Reviewers: Hermet

CC: seoz
Differential Revision: https://phab.enlightenment.org/D851

src/lib/elm_map.c

index 5b32b5546724344a98b06af15a487e99ac307081..b352b52336fb644ef1ed234fb97dda3f2e5cf9d6 100644 (file)
@@ -1012,21 +1012,24 @@ _track_place(Elm_Map_Data *sd)
 static void
 _calc_job(Elm_Map_Data *sd)
 {
-   if (sd->calc_job.region_show_bring_in)
-     {
-        sd->calc_job.region_show_bring_in
-          (sd, sd->calc_job.lon, sd->calc_job.lat, sd->calc_job.bring_in);
-        sd->calc_job.region_show_bring_in = NULL;
-     }
    if (sd->calc_job.zoom_mode_set)
      {
         sd->calc_job.zoom_mode_set(sd, sd->calc_job.zoom);
         sd->calc_job.zoom_mode_set = NULL;
      }
-   if (sd->calc_job.overlays_show)
+   if (!sd->zoom_animator)
      {
-        sd->calc_job.overlays_show(sd, sd->calc_job.overlays);
-        sd->calc_job.overlays_show = NULL;
+        if (sd->calc_job.region_show_bring_in)
+          {
+             sd->calc_job.region_show_bring_in
+                (sd, sd->calc_job.lon, sd->calc_job.lat, sd->calc_job.bring_in);
+             sd->calc_job.region_show_bring_in = NULL;
+          }
+        if (sd->calc_job.overlays_show)
+          {
+             sd->calc_job.overlays_show(sd, sd->calc_job.overlays);
+             sd->calc_job.overlays_show = NULL;
+          }
      }
 }
 
@@ -1136,6 +1139,7 @@ _zoom_anim_cb(void *data)
      {
         sd->zoom_animator = NULL;
         evas_object_smart_changed(sd->pan_obj);
+        _calc_job(sd);
 
         return ECORE_CALLBACK_CANCEL;
      }