From: Jaehwan Kim Date: Tue, 27 Mar 2012 03:14:48 +0000 (+0900) Subject: Merge "When the scroller is holded and scrolled, it can be jump. The squence is hold... X-Git-Tag: 1.0.0+svn.69691slp2+build01~19 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=a1195483d643401c637495b0d64a02678d30b783;hp=f77857840a08c1473e6d306b4c10134f946e3d1e;p=framework%2Fuifw%2Felementary.git Merge "When the scroller is holded and scrolled, it can be jump. The squence is hold push -> mouse down -> mouse move -> hold pop -> mouse move continuously. After upper sequence, the scroller will jump. So I fixed this issue." --- diff --git a/src/lib/els_scroller.c b/src/lib/els_scroller.c index 87ad01f..dea9e2c 100644 --- a/src/lib/els_scroller.c +++ b/src/lib/els_scroller.c @@ -70,6 +70,7 @@ struct _Smart_Data Eina_Bool bounce_x_hold : 1; Eina_Bool bounce_y_hold : 1; Eina_Bool scroll : 1; + Eina_Bool want_reset : 1; } down; struct { @@ -1774,6 +1775,10 @@ _smart_event_mouse_down(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSE sd->down.dragged_began = EINA_FALSE; sd->down.hold_parent = EINA_FALSE; sd->down.cancelled = EINA_FALSE; + if(sd->hold || sd->freeze) + sd->down.want_reset = EINA_TRUE; + else + sd->down.want_reset = EINA_FALSE; } } @@ -2396,6 +2401,12 @@ _smart_event_mouse_move(void *data, Evas *e, Evas_Object *obj __UNUSED__, void * y = sd->down.sy - (ev->cur.canvas.y - sd->down.y); else y = sd->down.sy; + if(sd->down.want_reset) + { + sd->down.x = ev->cur.canvas.x; + sd->down.y = ev->cur.canvas.y; + sd->down.want_reset = EINA_FALSE; + } if ((sd->down.dir_x) || (sd->down.dir_y)) { if (!sd->down.locked)