diff --git a/include/sway/input/keyboard.h b/include/sway/input/keyboard.h index 86805be37..e8f73c289 100644 --- a/include/sway/input/keyboard.h +++ b/include/sway/input/keyboard.h @@ -47,8 +47,6 @@ struct sway_keyboard { struct sway_keyboard *sway_keyboard_create(struct sway_seat *seat, struct sway_seat_device *device); -void sway_keyboard_configure(struct sway_keyboard *keyboard); - void sway_keyboard_destroy(struct sway_keyboard *keyboard); #endif diff --git a/sway/input/keyboard.c b/sway/input/keyboard.c index c1b53237c..523bffa4b 100644 --- a/sway/input/keyboard.c +++ b/sway/input/keyboard.c @@ -386,27 +386,7 @@ static void handle_keyboard_modifiers(struct wl_listener *listener, determine_bar_visibility(modifiers); } -struct sway_keyboard *sway_keyboard_create(struct sway_seat *seat, - struct sway_seat_device *device) { - struct sway_keyboard *keyboard = - calloc(1, sizeof(struct sway_keyboard)); - if (!sway_assert(keyboard, "could not allocate sway keyboard")) { - return NULL; - } - - keyboard->seat_device = device; - device->keyboard = keyboard; - - wl_list_init(&keyboard->keyboard_key.link); - wl_list_init(&keyboard->keyboard_modifiers.link); - - keyboard->key_repeat_source = wl_event_loop_add_timer(server.wl_event_loop, - handle_keyboard_repeat, keyboard); - - return keyboard; -} - -void sway_keyboard_configure(struct sway_keyboard *keyboard) { +static void sway_keyboard_configure(struct sway_keyboard *keyboard) { struct xkb_rule_names rules; memset(&rules, 0, sizeof(rules)); struct input_config *input_config = @@ -507,6 +487,27 @@ void sway_keyboard_configure(struct sway_keyboard *keyboard) { keyboard->keyboard_modifiers.notify = handle_keyboard_modifiers; } +struct sway_keyboard *sway_keyboard_create(struct sway_seat *seat, + struct sway_seat_device *device) { + struct sway_keyboard *keyboard = + calloc(1, sizeof(struct sway_keyboard)); + if (!sway_assert(keyboard, "could not allocate sway keyboard")) { + return NULL; + } + + keyboard->seat_device = device; + device->keyboard = keyboard; + + wl_list_init(&keyboard->keyboard_key.link); + wl_list_init(&keyboard->keyboard_modifiers.link); + + keyboard->key_repeat_source = wl_event_loop_add_timer(server.wl_event_loop, + handle_keyboard_repeat, keyboard); + + sway_keyboard_configure(device->keyboard); + return keyboard; +} + void sway_keyboard_destroy(struct sway_keyboard *keyboard) { if (!keyboard) { return; diff --git a/sway/input/seat.c b/sway/input/seat.c index 663c5140d..aac68408a 100644 --- a/sway/input/seat.c +++ b/sway/input/seat.c @@ -446,7 +446,6 @@ static void seat_configure_keyboard(struct sway_seat *seat, } struct wlr_keyboard *wlr_keyboard = seat_device->input_device->wlr_device->keyboard; - sway_keyboard_configure(seat_device->keyboard); wlr_seat_set_keyboard(seat->wlr_seat, seat_device->input_device->wlr_device); struct sway_node *focus = seat_get_focus(seat);