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