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 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.