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,10 +626,12 @@ static void handle_modifier_event(struct sway_keyboard *keyboard) {
determine_bar_visibility(modifiers);
}
if (wlr_device->keyboard->modifiers.group != keyboard->effective_layout &&
!wlr_keyboard_group_from_wlr_keyboard(wlr_device->keyboard)) {
if (wlr_device->keyboard->modifiers.group != keyboard->effective_layout) {
keyboard->effective_layout = wlr_device->keyboard->modifiers.group;
ipc_event_input("xkb_layout", keyboard->seat_device->input_device);
if (!wlr_keyboard_group_from_wlr_keyboard(wlr_device->keyboard)) {
ipc_event_input("xkb_layout", keyboard->seat_device->input_device);
}
}
}