aboutsummaryrefslogtreecommitdiffstats
path: root/sway/input/seat.c
diff options
context:
space:
mode:
Diffstat (limited to 'sway/input/seat.c')
-rw-r--r--sway/input/seat.c11
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.