You didn't update position history.

Maybe it should be ignored the all mouse events once the down is happened on 
the freeze/hold status.


------------------------------------

-Regards, Hermet-

-----Original Message-----
From: "Enlightenment SVN"<[email protected]> 
To: <[email protected]>; 
Cc: 
Sent: 2012-03-26 (월) 19:05:27
Subject: E SVN: jaehwan trunk/elementary/src/lib

Log:
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.
  

Author:       jaehwan
Date:         2012-03-26 03:05:26 -0700 (Mon, 26 Mar 2012)
New Revision: 69631
Trac:         http://trac.enlightenment.org/e/changeset/69631

Modified:
  trunk/elementary/src/lib/els_scroller.c 

Modified: trunk/elementary/src/lib/els_scroller.c
===================================================================
--- trunk/elementary/src/lib/els_scroller.c     2012-03-26 09:22:15 UTC (rev 
69630)
+++ trunk/elementary/src/lib/els_scroller.c     2012-03-26 10:05:26 UTC (rev 
69631)
@@ -70,6 +70,7 @@
       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 @@
         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;
      }
 }
 
@@ -2392,6 +2397,12 @@
                          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)


------------------------------------------------------------------------------
This SF email is sponsosred by:
Try Windows Azure free for 90 days Click Here 
http://p.sf.net/sfu/sfd2d-msazure
_______________________________________________
enlightenment-svn mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-svn


------------------------------------------------------------------------------
This SF email is sponsosred by:
Try Windows Azure free for 90 days Click Here 
http://p.sf.net/sfu/sfd2d-msazure
_______________________________________________
enlightenment-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to