diff options
Diffstat (limited to 'sway/input/seat.c')
-rw-r--r-- | sway/input/seat.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/sway/input/seat.c b/sway/input/seat.c index 4919bed0..151303a9 100644 --- a/sway/input/seat.c +++ b/sway/input/seat.c | |||
@@ -823,8 +823,15 @@ static void seat_configure_keyboard(struct sway_seat *seat, | |||
823 | sway_keyboard_create(seat, seat_device); | 823 | sway_keyboard_create(seat, seat_device); |
824 | } | 824 | } |
825 | sway_keyboard_configure(seat_device->keyboard); | 825 | sway_keyboard_configure(seat_device->keyboard); |
826 | wlr_seat_set_keyboard(seat->wlr_seat, | 826 | |
827 | wlr_keyboard_from_input_device(seat_device->input_device->wlr_device)); | 827 | // We only need to update the current keyboard, as the rest will be updated |
828 | // as they are activated. | ||
829 | struct wlr_keyboard *wlr_keyboard = | ||
830 | wlr_keyboard_from_input_device(seat_device->input_device->wlr_device); | ||
831 | struct wlr_keyboard *current_keyboard = seat->wlr_seat->keyboard_state.keyboard; | ||
832 | if (wlr_keyboard != current_keyboard) { | ||
833 | return; | ||
834 | } | ||
828 | 835 | ||
829 | // force notify reenter to pick up the new configuration. This reuses | 836 | // force notify reenter to pick up the new configuration. This reuses |
830 | // the current focused surface to avoid breaking input grabs. | 837 | // the current focused surface to avoid breaking input grabs. |