]> Dogcows Code - chaz/openbox/commitdiff
add a drag threshold
authorDana Jansens <danakj@orodu.net>
Wed, 19 Mar 2003 19:25:31 +0000 (19:25 +0000)
committerDana Jansens <danakj@orodu.net>
Wed, 19 Mar 2003 19:25:31 +0000 (19:25 +0000)
plugins/mouse/mouse.c

index 0cb6b5c0095213a7bdd423bf5c1062668cfa784b..cd2320a1c82d778ef06630a3a4787347f8acbdee 100644 (file)
@@ -9,6 +9,8 @@
 #include "mouse.h"
 #include <glib.h>
 
+static int drag_threshold = 3;
+
 /* GData of GSList*s of PointerBinding*s. */
 static GData *bound_contexts;
 
@@ -270,14 +272,17 @@ static void event(ObEvent *e, void *foo)
 
     case Event_X_MotionNotify:
         if (button) {
-            drag = TRUE;
             dx = e->data.x.e->xmotion.x_root - px;
             dy = e->data.x.e->xmotion.y_root - py;
-            context = engine_get_context(e->data.x.client,
-                                         e->data.x.e->xbutton.window);
-            fire_motion(MouseAction_Motion, context,
-                        e->data.x.client, e->data.x.e->xmotion.state,
-                        button, cx, cy, cw, ch, dx, dy, FALSE, corner);
+            if (ABS(dx) >= drag_threshold || ABS(dy) >= drag_threshold)
+                drag = TRUE;
+            if (drag) {
+                context = engine_get_context(e->data.x.client,
+                                             e->data.x.e->xbutton.window);
+                fire_motion(MouseAction_Motion, context,
+                            e->data.x.client, e->data.x.e->xmotion.state,
+                            button, cx, cy, cw, ch, dx, dy, FALSE, corner);
+            }
         }
         break;
 
This page took 0.026987 seconds and 4 git commands to generate.