diff --git a/data/rc.xml b/data/rc.xml index 7598a72c..209cc2dc 100644 --- a/data/rc.xml +++ b/data/rc.xml @@ -313,7 +313,7 @@ 1 - 200 + 500 400 - 200 + 500 diff --git a/openbox/config.c b/openbox/config.c index debd9fba..8e0e5ac3 100644 --- a/openbox/config.c +++ b/openbox/config.c @@ -1070,7 +1070,7 @@ void config_startup(ObtXmlInst *i) obt_xml_register(i, "keyboard", parse_keyboard, NULL); config_mouse_threshold = 8; - config_mouse_dclicktime = 200; + config_mouse_dclicktime = 500; config_mouse_screenedgetime = 400; config_mouse_screenedgewarp = FALSE; diff --git a/openbox/mouse.c b/openbox/mouse.c index ddf6851d..2f0c8f59 100644 --- a/openbox/mouse.c +++ b/openbox/mouse.c @@ -211,7 +211,7 @@ gboolean mouse_event(ObClient *client, XEvent *e) static Time ltime; static guint button = 0, state = 0, lbutton = 0; static Window lwindow = None; - static gint px, py, pwx = -1, pwy = -1; + static gint px, py, pwx = -1, pwy = -1, lx = -10, ly = -10; gboolean used = FALSE; ObFrameContext context; @@ -290,18 +290,24 @@ gboolean mouse_event(ObClient *client, XEvent *e) if (e->xbutton.x >= (signed)-b && e->xbutton.y >= (signed)-b && e->xbutton.x < (signed)(w+b) && - e->xbutton.y < (signed)(h+b)) { + e->xbutton.y < (signed)(h+b)) + { click = TRUE; /* double clicks happen if there were 2 in a row! */ if (lbutton == button && lwindow == e->xbutton.window && e->xbutton.time - config_mouse_dclicktime <= - ltime) { + ltime && + ABS(e->xbutton.x - lx) < 8 && + ABS(e->xbutton.y - ly) < 8) + { dclick = TRUE; lbutton = 0; } else { lbutton = button; lwindow = e->xbutton.window; + lx = e->xbutton.x; + ly = e->xbutton.y; } } else { lbutton = 0;