aboutsummaryrefslogtreecommitdiff
path: root/sway/input
diff options
context:
space:
mode:
authorConnor E <38229097+c-edw@users.noreply.github.com>2018-11-06 20:58:08 +0000
committeremersion <contact@emersion.fr>2018-11-06 21:58:08 +0100
commit4a21981855a340c549db99d286590c369895da87 (patch)
tree76c83b88d97471f871454e828b403f27043a6876 /sway/input
parent001ec1f3fdd700c23fb6dc91018697130af225ff (diff)
downloadsway-4a21981855a340c549db99d286590c369895da87.tar.xz
Add focus_follows_mouse always. (#3081)
* Add focus_follows_mouse_mode. * Fail if focus_follows_mouse is invalid. * Fix indentation.
Diffstat (limited to 'sway/input')
-rw-r--r--sway/input/cursor.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/sway/input/cursor.c b/sway/input/cursor.c
index c539df40..62cdba37 100644
--- a/sway/input/cursor.c
+++ b/sway/input/cursor.c
@@ -637,7 +637,8 @@ void cursor_send_pointer_motion(struct sway_cursor *cursor,
cursor->previous.y = cursor->cursor->y;
cursor->previous.node = node;
- if (node && config->focus_follows_mouse) {
+ if (node && (config->focus_follows_mouse == FOLLOWS_YES ||
+ config->focus_follows_mouse == FOLLOWS_ALWAYS)) {
struct sway_node *focus = seat_get_focus(seat);
if (focus && node->type == N_WORKSPACE) {
// Only follow the mouse if it would move to a new output
@@ -652,9 +653,10 @@ void cursor_send_pointer_motion(struct sway_cursor *cursor,
// - cursor is over a new view, i.e. entered a new window; and
// - the new view is visible, i.e. not hidden in a stack or tab; and
// - the seat does not have a keyboard grab
- if (!wlr_seat_keyboard_has_grab(cursor->seat->wlr_seat) &&
+ if ((!wlr_seat_keyboard_has_grab(cursor->seat->wlr_seat) &&
node != prev_node &&
- view_is_visible(node->sway_container->view)) {
+ view_is_visible(node->sway_container->view)) ||
+ config->focus_follows_mouse == FOLLOWS_ALWAYS) {
seat_set_focus(seat, node);
} else {
struct sway_node *next_focus =