diff options
author | emersion <contact@emersion.fr> | 2017-12-22 15:06:12 +0100 |
---|---|---|
committer | emersion <contact@emersion.fr> | 2017-12-22 15:06:12 +0100 |
commit | 9e2d936b4adb4936d86ae6c2420d7248787043d1 (patch) | |
tree | 9b02c04a9e97a7a2fc2ee8ba1b98bade6f1b10dd /rootston/cursor.c | |
parent | 0a370c529806077a11638e7fa856d5fbb539496b (diff) |
Fix rootston seat button count
Diffstat (limited to 'rootston/cursor.c')
-rw-r--r-- | rootston/cursor.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/rootston/cursor.c b/rootston/cursor.c index 95e8ce2a..ad15989d 100644 --- a/rootston/cursor.c +++ b/rootston/cursor.c @@ -166,6 +166,13 @@ static void roots_cursor_press_button(struct roots_cursor *cursor, } return; } + if (state == WLR_BUTTON_RELEASED && + cursor->mode != ROOTS_CURSOR_PASSTHROUGH) { + cursor->mode = ROOTS_CURSOR_PASSTHROUGH; + if (seat->seat->pointer_state.button_count == 0) { + return; + } + } uint32_t serial; if (is_touch) { @@ -178,7 +185,6 @@ static void roots_cursor_press_button(struct roots_cursor *cursor, int i; switch (state) { case WLR_BUTTON_RELEASED: - seat->cursor->mode = ROOTS_CURSOR_PASSTHROUGH; if (!is_touch) { roots_cursor_update_position(cursor, time); } |