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 43b20779..646f3866 100644 --- a/sway/input/seat.c +++ b/sway/input/seat.c | |||
@@ -814,8 +814,15 @@ static void seat_configure_keyboard(struct sway_seat *seat, | |||
814 | sway_keyboard_create(seat, seat_device); | 814 | sway_keyboard_create(seat, seat_device); |
815 | } | 815 | } |
816 | sway_keyboard_configure(seat_device->keyboard); | 816 | sway_keyboard_configure(seat_device->keyboard); |
817 | wlr_seat_set_keyboard(seat->wlr_seat, | 817 | |
818 | wlr_keyboard_from_input_device(seat_device->input_device->wlr_device)); | 818 | // We only need to update the current keyboard, as the rest will be updated |
819 | // as they are activated. | ||
820 | struct wlr_keyboard *wlr_keyboard = | ||
821 | wlr_keyboard_from_input_device(seat_device->input_device->wlr_device); | ||
822 | struct wlr_keyboard *current_keyboard = seat->wlr_seat->keyboard_state.keyboard; | ||
823 | if (wlr_keyboard != current_keyboard) { | ||
824 | return; | ||
825 | } | ||
819 | 826 | ||
820 | // force notify reenter to pick up the new configuration. This reuses | 827 | // force notify reenter to pick up the new configuration. This reuses |
821 | // the current focused surface to avoid breaking input grabs. | 828 | // the current focused surface to avoid breaking input grabs. |