add a drag threshold

This commit is contained in:
Dana Jansens 2003-03-19 19:25:31 +00:00
parent e442c6cc56
commit 1588c852ec

View file

@ -9,6 +9,8 @@
#include "mouse.h" #include "mouse.h"
#include <glib.h> #include <glib.h>
static int drag_threshold = 3;
/* GData of GSList*s of PointerBinding*s. */ /* GData of GSList*s of PointerBinding*s. */
static GData *bound_contexts; static GData *bound_contexts;
@ -270,15 +272,18 @@ static void event(ObEvent *e, void *foo)
case Event_X_MotionNotify: case Event_X_MotionNotify:
if (button) { if (button) {
drag = TRUE;
dx = e->data.x.e->xmotion.x_root - px; dx = e->data.x.e->xmotion.x_root - px;
dy = e->data.x.e->xmotion.y_root - py; dy = e->data.x.e->xmotion.y_root - py;
if (ABS(dx) >= drag_threshold || ABS(dy) >= drag_threshold)
drag = TRUE;
if (drag) {
context = engine_get_context(e->data.x.client, context = engine_get_context(e->data.x.client,
e->data.x.e->xbutton.window); e->data.x.e->xbutton.window);
fire_motion(MouseAction_Motion, context, fire_motion(MouseAction_Motion, context,
e->data.x.client, e->data.x.e->xmotion.state, e->data.x.client, e->data.x.e->xmotion.state,
button, cx, cy, cw, ch, dx, dy, FALSE, corner); button, cx, cy, cw, ch, dx, dy, FALSE, corner);
} }
}
break; break;
default: default: