Skip to content

Commit

Permalink
Change default doubleclick timeout to 500ms and keep track of where l…
Browse files Browse the repository at this point in the history
…ast click was

Bug #5152 - "mouse double-click time is too low by default - 200ms"

We only use the doubleclick in one place in the default configuration,
for doubleclicking titlebars to maximize windows, so any negative impact
of increasing the timeout should be minimal, especially with the
addition of requiring the two clicks to be in the same place.

Doubleclicks are hardcoded to occur within 8 pixels for now, it doesn't
seem worth it to add a config until someone complains. A possibility is
using the drag threshold, but some people have that set very low so it
could be hard to doubleclick then.
  • Loading branch information
Mikachu committed Oct 16, 2011
1 parent 1d2da70 commit c885c9a
Show file tree
Hide file tree
Showing 4 changed files with 12 additions and 6 deletions.
2 changes: 1 addition & 1 deletion data/rc.xml
Expand Up @@ -313,7 +313,7 @@
<mouse>
<dragThreshold>1</dragThreshold>
<!-- number of pixels the mouse must move before a drag begins -->
<doubleClickTime>200</doubleClickTime>
<doubleClickTime>500</doubleClickTime>
<!-- in milliseconds (1000 = 1 second) -->
<screenEdgeWarpTime>400</screenEdgeWarpTime>
<!-- Time before changing desktops when the pointer touches the edge of the
Expand Down
2 changes: 1 addition & 1 deletion doc/rc-mouse-focus.xml
Expand Up @@ -226,7 +226,7 @@
<mouse>
<dragThreshold>8</dragThreshold>
<!-- number of pixels the mouse must move before a drag begins -->
<doubleClickTime>200</doubleClickTime>
<doubleClickTime>500</doubleClickTime>
<!-- in milliseconds (1000 = 1 second) -->

<context name="Frame">
Expand Down
2 changes: 1 addition & 1 deletion openbox/config.c
Expand Up @@ -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;

Expand Down
12 changes: 9 additions & 3 deletions openbox/mouse.c
Expand Up @@ -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;
Expand Down Expand Up @@ -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;
Expand Down

0 comments on commit c885c9a

Please sign in to comment.