Merge pull request #1630 from Deiz/consistent-mouse-actions
Make floating window mouse handling consistent with tiled windows
This commit is contained in:
commit
92ffc78e19
14
src/click.c
14
src/click.c
|
@ -180,6 +180,9 @@ static int route_click(Con *con, xcb_button_press_event_t *event, const bool mod
|
|||
if (con->parent->type == CT_DOCKAREA)
|
||||
goto done;
|
||||
|
||||
const bool is_left_or_right_click = (event->detail == XCB_BUTTON_INDEX_1 ||
|
||||
event->detail == XCB_BUTTON_INDEX_3);
|
||||
|
||||
/* if the user has bound an action to this click, it should override the
|
||||
* default behavior. */
|
||||
if (dest == CLICK_DECORATION || dest == CLICK_INSIDE) {
|
||||
|
@ -278,7 +281,8 @@ static int route_click(Con *con, xcb_button_press_event_t *event, const bool mod
|
|||
return 1;
|
||||
}
|
||||
|
||||
if (!in_stacked && dest == CLICK_DECORATION) {
|
||||
if (!in_stacked && dest == CLICK_DECORATION &&
|
||||
is_left_or_right_click) {
|
||||
/* try tiling resize, but continue if it doesn’t work */
|
||||
DLOG("tiling resize with fallback\n");
|
||||
if (tiling_resize(con, event, dest))
|
||||
|
@ -291,7 +295,7 @@ static int route_click(Con *con, xcb_button_press_event_t *event, const bool mod
|
|||
return 1;
|
||||
}
|
||||
|
||||
if (dest == CLICK_BORDER) {
|
||||
if (dest == CLICK_BORDER && is_left_or_right_click) {
|
||||
DLOG("floating resize due to border click\n");
|
||||
floating_resize_window(floatingcon, proportional, event);
|
||||
return 1;
|
||||
|
@ -299,7 +303,8 @@ static int route_click(Con *con, xcb_button_press_event_t *event, const bool mod
|
|||
|
||||
/* 6: dragging, if this was a click on a decoration (which did not lead
|
||||
* to a resize) */
|
||||
if (!in_stacked && dest == CLICK_DECORATION) {
|
||||
if (!in_stacked && dest == CLICK_DECORATION &&
|
||||
(event->detail == XCB_BUTTON_INDEX_1)) {
|
||||
floating_drag_window(floatingcon, event);
|
||||
return 1;
|
||||
}
|
||||
|
@ -320,8 +325,7 @@ static int route_click(Con *con, xcb_button_press_event_t *event, const bool mod
|
|||
}
|
||||
/* 8: otherwise, check for border/decoration clicks and resize */
|
||||
else if ((dest == CLICK_BORDER || dest == CLICK_DECORATION) &&
|
||||
(event->detail == XCB_BUTTON_INDEX_1 ||
|
||||
event->detail == XCB_BUTTON_INDEX_3)) {
|
||||
is_left_or_right_click) {
|
||||
DLOG("Trying to resize (tiling)\n");
|
||||
tiling_resize(con, event, dest);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue