Merge pull request #1722 from Airblader/bug-1701

Grab all buttons when managing a window
next
Michael Stapelberg 2015-05-27 19:27:56 +02:00
commit 8029ff09d7
2 changed files with 5 additions and 14 deletions

View File

@ -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);

View File

@ -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 /* dont 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 /* dont 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 /* dont filter for any modifiers */);
/* update as much information as possible so far (some replies may be NULL) */