input/keyboard: wlr_keyboard_group enter and leave

This adds support for wlr_keyboard_group's enter and leave events. The
enter event just updates the keyboard's state. The leave event updates
the keyboard's state and if the surface was notified of a press event
for any of the keycodes, it is refocused so that it can pick up the
current keyboard state without triggering any keybinds.
This commit is contained in:
Brian Ashworth 2020-06-13 11:45:50 -04:00 committed by Simon Ser
parent 45859be03f
commit 33aa59d4c6
2 changed files with 128 additions and 45 deletions

View file

@ -75,6 +75,8 @@ struct sway_keyboard_group {
struct sway_seat_device *seat_device;
struct wl_listener keyboard_key;
struct wl_listener keyboard_modifiers;
struct wl_listener enter;
struct wl_listener leave;
struct wl_list link; // sway_seat::keyboard_groups
};