From 00c2fe4b69a64e401019dc14555a29ac10e60ffe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ingo=20B=C3=BCrk?= Date: Tue, 26 May 2015 16:56:00 +0200 Subject: [PATCH 1/2] =?UTF-8?q?Grab=20all=20buttons=20when=20managing=20a?= =?UTF-8?q?=20window=20to=20also=20allow=20'bindsym=20--whole-window=20but?= =?UTF-8?q?ton4=20=E2=80=A6'=20to=20work=20correctly.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit fixes #1701 --- src/manage.c | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/src/manage.c b/src/manage.c index 9d27ddea..8dcc17a2 100644 --- a/src/manage.c +++ b/src/manage.c @@ -168,20 +168,11 @@ void manage_window(xcb_window_t window, xcb_get_window_attributes_cookie_t cooki cwindow->id = window; cwindow->depth = get_visual_depth(attr->visual); - /* We need to grab the mouse buttons for click to focus */ + /* We need to grab buttons 1-3 for click-to-focus and buttons 1-5 + * to allow for mouse bindings using --whole-window to work correctly. */ xcb_grab_button(conn, false, window, XCB_EVENT_MASK_BUTTON_PRESS, XCB_GRAB_MODE_SYNC, XCB_GRAB_MODE_ASYNC, root, XCB_NONE, - 1 /* left mouse button */, - XCB_BUTTON_MASK_ANY /* don’t filter for any modifiers */); - - xcb_grab_button(conn, false, window, XCB_EVENT_MASK_BUTTON_PRESS, - XCB_GRAB_MODE_SYNC, XCB_GRAB_MODE_ASYNC, root, XCB_NONE, - 2 /* middle mouse button */, - XCB_BUTTON_MASK_ANY /* don’t filter for any modifiers */); - - xcb_grab_button(conn, false, window, XCB_EVENT_MASK_BUTTON_PRESS, - XCB_GRAB_MODE_SYNC, XCB_GRAB_MODE_ASYNC, root, XCB_NONE, - 3 /* right mouse button */, + XCB_BUTTON_INDEX_ANY, XCB_BUTTON_MASK_ANY /* don’t filter for any modifiers */); /* update as much information as possible so far (some replies may be NULL) */ From b22a9ce617d5827748de75068a2565be0e15ab75 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ingo=20B=C3=BCrk?= Date: Tue, 26 May 2015 16:57:25 +0200 Subject: [PATCH 2/2] Improve logging of button events. --- src/click.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/click.c b/src/click.c index 690bd1f8..bd2dcb9f 100644 --- a/src/click.c +++ b/src/click.c @@ -349,8 +349,8 @@ done: */ int handle_button_press(xcb_button_press_event_t *event) { Con *con; - DLOG("Button %d %s on window 0x%08x (child 0x%08x) at (%d, %d) (root %d, %d)\n", - event->state, (event->response_type == XCB_BUTTON_PRESS ? "press" : "release"), + DLOG("Button %d (state %d) %s on window 0x%08x (child 0x%08x) at (%d, %d) (root %d, %d)\n", + event->detail, event->state, (event->response_type == XCB_BUTTON_PRESS ? "press" : "release"), event->event, event->child, event->event_x, event->event_y, event->root_x, event->root_y);