Merge "[scroller] change pan size if gravity is set"
authorHyoyoung Chang <hyoyoung.chang@samsung.com>
Fri, 4 Nov 2011 09:41:32 +0000 (18:41 +0900)
committerGerrit Code Review <git@Maetan>
Fri, 4 Nov 2011 09:41:32 +0000 (18:41 +0900)
src/lib/els_pan.c

index ff3cc5c..8920ce3 100644 (file)
@@ -195,17 +195,22 @@ _smart_reconfigure(Smart_Data *sd)
 {
    if (sd->gravity_x || sd->gravity_y)
      {
+        if ((!sd->px) && (!sd->py))
+          {
+             sd->px = sd->delta_posx*sd->gravity_x;
+             sd->py = sd->delta_posy*sd->gravity_y;
+          }
         sd->delta_posx += sd->child_w - sd->prev_cw;
         sd->prev_cw = sd->child_w;
         sd->delta_posy += sd->child_h - sd->prev_ch;
         sd->prev_ch = sd->child_h;
 
         evas_object_move(sd->child_obj,
-                         sd->x - sd->px - (sd->delta_posx*sd->gravity_x),
-                         sd->y - sd->py - (sd->delta_posy*sd->gravity_y));
-        sd->px += sd->delta_posx*sd->gravity_x;
-        sd->py += sd->delta_posy*sd->gravity_y;
+                         sd->x - sd->px,
+                         sd->y - sd->py);
 
+        sd->px = sd->delta_posx*sd->gravity_x;
+        sd->py = sd->delta_posy*sd->gravity_y;
      }
    else
      evas_object_move(sd->child_obj, sd->x - sd->px, sd->y - sd->py);