diff --git a/openbox-doubleclick.patch b/openbox-doubleclick.patch new file mode 100644 index 0000000..dc668dd --- /dev/null +++ b/openbox-doubleclick.patch @@ -0,0 +1,97 @@ +commit c885c9a676e4860a68f0bdce4b926902f6597ebb +Author: Mikael Magnusson +Date: Thu Aug 4 18:34:54 2011 +0200 + + Change default doubleclick timeout to 500ms and keep track of where last 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. + +diff --git a/data/rc.xml b/data/rc.xml +index 7598a72..209cc2d 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 debd9fb..8e0e5ac 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 ddf6851..2f0c8f5 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; diff --git a/openbox.spec b/openbox.spec index df11ccf..83641cd 100644 --- a/openbox.spec +++ b/openbox.spec @@ -14,6 +14,7 @@ Source4: openbox.desktop Source5: terminals.menu Source6: openbox.gnome-session +Patch1: openbox-doubleclick.patch Patch2: openbox-3.4.11.2-gnomesession.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) @@ -95,6 +96,7 @@ KDE session. %prep %setup -q +%patch1 -p1 -b .doubleclick %patch2 -p1 -b .gnome