Revision: 4467
          http://vexi.svn.sourceforge.net/vexi/?rev=4467&view=rev
Author:   clrg
Date:     2012-12-13 04:10:41 +0000 (Thu, 13 Dec 2012)
Log Message:
-----------
Prevent mousewheel messages stacking

Modified Paths:
--------------
    trunk/org.vexi-core.main/src/main/java/org/vexi/core/Surface.java

Modified: trunk/org.vexi-core.main/src/main/java/org/vexi/core/Surface.java
===================================================================
--- trunk/org.vexi-core.main/src/main/java/org/vexi/core/Surface.java   
2012-12-13 03:47:32 UTC (rev 4466)
+++ trunk/org.vexi-core.main/src/main/java/org/vexi/core/Surface.java   
2012-12-13 04:10:41 UTC (rev 4467)
@@ -243,8 +243,20 @@
     // these values get reset by Message
     private static int hscroll = 0;
     private static int vscroll = 0;
-    protected final void HScroll(int pixels) { hscroll += pixels; 
message(SC_HScroll, SC__HScroll, null); }
-    protected final void VScroll(int pixels) { vscroll += pixels; 
message(SC_VScroll, SC__VScroll, null); }
+    private static boolean hscrollScheduled = false;
+    private static boolean vscrollScheduled = false;
+    protected final void HScroll(int pixels) {
+       hscroll += pixels;
+       if (hscrollScheduled) return;
+       hscrollScheduled = true;
+       message(SC_HScroll, SC__HScroll, null);
+    }
+    protected final void VScroll(int pixels) {
+       vscroll += pixels;
+       if (vscrollScheduled) return;
+       vscrollScheduled = true;
+       message(SC_VScroll, SC__VScroll, null);
+    }
     protected final void HScroll(float lines) { /* UNSUPPORTED 
message(SC_HScroll, SC__HScroll, JSU.N(lines)); */ }
     protected final void VScroll(float lines) { /* UNSUPPORTED 
message(SC_VScroll, SC__VScroll, JSU.N(lines)); */ }
 
@@ -452,9 +464,11 @@
                 
             } else if (event==SC_HScroll) {
                value = JSU.N(hscroll);
+               hscrollScheduled = false;
                hscroll = 0;
             } else if (event==SC_VScroll) {
                value = JSU.N(vscroll);
+               vscrollScheduled = false;
                vscroll = 0;
             }
             

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.


------------------------------------------------------------------------------
LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
Remotely access PCs and mobile devices and provide instant support
Improve your efficiency, and focus on delivering more value-add services
Discover what IT Professionals Know. Rescue delivers
http://p.sf.net/sfu/logmein_12329d2d
_______________________________________________
Vexi-svn mailing list
Vexi-svn@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/vexi-svn

Reply via email to