input/keyboard: fix Group# bindings for keyboard groups

The keyboard group's effective keyboard layout was never being changed
due to a condition that incorrectly preventing it from being performed.
The IPC event that follows the change was correctly being prevented.
This commit is contained in:
Brian Ashworth 2020-11-11 21:13:38 -05:00 committed by Simon Ser
parent 07042486c3
commit 9d6787d10d

View file

@ -626,12 +626,14 @@ static void handle_modifier_event(struct sway_keyboard *keyboard) {
determine_bar_visibility(modifiers); determine_bar_visibility(modifiers);
} }
if (wlr_device->keyboard->modifiers.group != keyboard->effective_layout && if (wlr_device->keyboard->modifiers.group != keyboard->effective_layout) {
!wlr_keyboard_group_from_wlr_keyboard(wlr_device->keyboard)) {
keyboard->effective_layout = wlr_device->keyboard->modifiers.group; keyboard->effective_layout = wlr_device->keyboard->modifiers.group;
if (!wlr_keyboard_group_from_wlr_keyboard(wlr_device->keyboard)) {
ipc_event_input("xkb_layout", keyboard->seat_device->input_device); ipc_event_input("xkb_layout", keyboard->seat_device->input_device);
} }
} }
}
static void handle_keyboard_modifiers(struct wl_listener *listener, static void handle_keyboard_modifiers(struct wl_listener *listener,
void *data) { void *data) {