]> git.lizzy.rs Git - bspwm.git/blobdiff - src/pointer.c
*click_to_focus* is now a button name
[bspwm.git] / src / pointer.c
index 3f4be8ab2279374399032b48067bfe454b3bc77f..1bdb6c673b58e6383290b01a6914a3df6f06cac7 100644 (file)
@@ -50,13 +50,12 @@ void pointer_init(void)
 
 void window_grab_buttons(xcb_window_t win)
 {
-       if (click_to_focus) {
-               window_grab_button(win, XCB_BUTTON_INDEX_1, XCB_NONE);
-       }
-       uint8_t buttons[] = {XCB_BUTTON_INDEX_1, XCB_BUTTON_INDEX_2, XCB_BUTTON_INDEX_3};
-       for (unsigned int i = 0; i < LENGTH(buttons); i++) {
+       for (unsigned int i = 0; i < LENGTH(BUTTONS); i++) {
+               if (click_to_focus == XCB_BUTTON_INDEX_ANY || click_to_focus == BUTTONS[i]) {
+                       window_grab_button(win, BUTTONS[i], XCB_NONE);
+               }
                if (pointer_actions[i] != ACTION_NONE) {
-                       window_grab_button(win, buttons[i], pointer_modifier);
+                       window_grab_button(win, BUTTONS[i], pointer_modifier);
                }
        }
 }
@@ -155,7 +154,7 @@ end:
 resize_handle_t get_handle(node_t *n, xcb_point_t pos, pointer_action_t pac)
 {
        resize_handle_t rh = HANDLE_BOTTOM_RIGHT;
-       xcb_rectangle_t rect = get_rectangle(NULL, n);
+       xcb_rectangle_t rect = get_rectangle(NULL, NULL, n);
        if (pac == ACTION_RESIZE_SIDE) {
                float W = rect.width;
                float H = rect.height;
@@ -311,7 +310,7 @@ void track_pointer(coordinates_t loc, pointer_action_t pac, xcb_point_t pos)
                put_status(SBSC_MASK_POINTER_ACTION, "pointer_action 0x%08X 0x%08X 0x%08X resize_side end\n", loc.monitor->id, loc.desktop->id, n->id);
        }
 
-       xcb_rectangle_t r = get_rectangle(NULL, n);
+       xcb_rectangle_t r = get_rectangle(NULL, NULL, n);
 
        put_status(SBSC_MASK_NODE_GEOMETRY, "node_geometry 0x%08X 0x%08X 0x%08X %ux%u+%i+%i\n", loc.monitor->id, loc.desktop->id, loc.node->id, r.width, r.height, r.x, r.y);