Fix rootston seat button count
@@ -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);
}
