]> git.sur5r.net Git - i3/i3/blobdiff - src/xcb.c
Only grab the mouse buttons that need to be grabbed. (#2290)
[i3/i3] / src / xcb.c
index 9d181cfa8c8ba28dbb4b5a35e14aca1c2ec2ce4d..630c68f9cf6ccb847aa236a57378342948354e92 100644 (file)
--- a/src/xcb.c
+++ b/src/xcb.c
@@ -346,20 +346,12 @@ release_grab:
  * Grab the specified buttons on a window when managing it.
  *
  */
-void xcb_grab_buttons(xcb_connection_t *conn, xcb_window_t window, bool bind_scrollwheel) {
-    uint8_t buttons[3];
-    int num = 0;
-
-    if (bind_scrollwheel) {
-        buttons[num++] = XCB_BUTTON_INDEX_ANY;
-    } else {
-        buttons[num++] = XCB_BUTTON_INDEX_1;
-        buttons[num++] = XCB_BUTTON_INDEX_2;
-        buttons[num++] = XCB_BUTTON_INDEX_3;
-    }
-
-    for (int i = 0; i < num; i++) {
+void xcb_grab_buttons(xcb_connection_t *conn, xcb_window_t window, int *buttons) {
+    int i = 0;
+    while (buttons[i] > 0) {
         xcb_grab_button(conn, false, window, XCB_EVENT_MASK_BUTTON_PRESS, XCB_GRAB_MODE_SYNC,
                         XCB_GRAB_MODE_ASYNC, root, XCB_NONE, buttons[i], XCB_BUTTON_MASK_ANY);
+
+        i++;
     }
 }