On Wayland, send Focused(false) once seats left

Given that we merge all the seats, we should consider that window
is not focused once all seats wl_keyboards are no longer present.

We use seats instead of keyboards to track focus to protect against
wl_keyboard::leave not being delivered when removing the seat
(usually it's not the case though).

Fixes: #3376
This commit is contained in:
Kirill Chibisov 2024-01-30 18:28:13 +04:00 committed by GitHub
parent df8805c0d2
commit dd13ccda4c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 72 additions and 32 deletions

View file

@ -45,6 +45,7 @@ Unreleased` header.
- Add `Window::builder`, which is intended to replace the (now deprecated) `WindowBuilder::new`.
- On X11, reload dpi on `_XSETTINGS_SETTINGS` update.
- On X11, fix deadlock when adjusting DPI and resizing at the same time.
- On Wayland, fix `Focused(false)` being send when other seats still have window focused.
# 0.29.10