Eina_Bool bounce_x_hold : 1;
Eina_Bool bounce_y_hold : 1;
Eina_Bool scroll : 1;
+ Eina_Bool want_reset : 1;
} down;
struct {
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;
}
}
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)