diff options
-rw-r--r-- | sway/input/keyboard.c | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/sway/input/keyboard.c b/sway/input/keyboard.c index 2ab0206a..b9b571a6 100644 --- a/sway/input/keyboard.c +++ b/sway/input/keyboard.c | |||
@@ -10,10 +10,9 @@ static void handle_keyboard_key(struct wl_listener *listener, void *data) { | |||
10 | struct wlr_input_device *wlr_device = | 10 | struct wlr_input_device *wlr_device = |
11 | keyboard->seat_device->input_device->wlr_device; | 11 | keyboard->seat_device->input_device->wlr_device; |
12 | struct wlr_event_keyboard_key *event = data; | 12 | struct wlr_event_keyboard_key *event = data; |
13 | wlr_keyboard_set_keymap(wlr_device->keyboard, keyboard->keymap); | ||
14 | wlr_seat_set_keyboard(wlr_seat, wlr_device); | 13 | wlr_seat_set_keyboard(wlr_seat, wlr_device); |
15 | wlr_seat_keyboard_notify_key(wlr_seat, event->time_msec,event->keycode, | 14 | wlr_seat_keyboard_notify_key(wlr_seat, event->time_msec, |
16 | event->state); | 15 | event->keycode, event->state); |
17 | } | 16 | } |
18 | 17 | ||
19 | static void handle_keyboard_modifiers(struct wl_listener *listener, | 18 | static void handle_keyboard_modifiers(struct wl_listener *listener, |
@@ -23,7 +22,6 @@ static void handle_keyboard_modifiers(struct wl_listener *listener, | |||
23 | struct wlr_seat *wlr_seat = keyboard->seat_device->sway_seat->wlr_seat; | 22 | struct wlr_seat *wlr_seat = keyboard->seat_device->sway_seat->wlr_seat; |
24 | struct wlr_input_device *wlr_device = | 23 | struct wlr_input_device *wlr_device = |
25 | keyboard->seat_device->input_device->wlr_device; | 24 | keyboard->seat_device->input_device->wlr_device; |
26 | wlr_keyboard_set_keymap(wlr_device->keyboard, keyboard->keymap); | ||
27 | wlr_seat_set_keyboard(wlr_seat, wlr_device); | 25 | wlr_seat_set_keyboard(wlr_seat, wlr_device); |
28 | wlr_seat_keyboard_notify_modifiers(wlr_seat); | 26 | wlr_seat_keyboard_notify_modifiers(wlr_seat); |
29 | } | 27 | } |
@@ -50,6 +48,8 @@ void sway_keyboard_configure(struct sway_keyboard *keyboard) { | |||
50 | memset(&rules, 0, sizeof(rules)); | 48 | memset(&rules, 0, sizeof(rules)); |
51 | struct input_config *input_config = | 49 | struct input_config *input_config = |
52 | keyboard->seat_device->input_device->config; | 50 | keyboard->seat_device->input_device->config; |
51 | struct wlr_input_device *wlr_device = | ||
52 | keyboard->seat_device->input_device->wlr_device; | ||
53 | 53 | ||
54 | if (input_config && input_config->xkb_layout) { | 54 | if (input_config && input_config->xkb_layout) { |
55 | rules.layout = input_config->xkb_layout; | 55 | rules.layout = input_config->xkb_layout; |
@@ -88,18 +88,16 @@ void sway_keyboard_configure(struct sway_keyboard *keyboard) { | |||
88 | xkb_keymap_unref(keyboard->keymap); | 88 | xkb_keymap_unref(keyboard->keymap); |
89 | keyboard->keymap = | 89 | keyboard->keymap = |
90 | xkb_keymap_new_from_names(context, &rules, XKB_KEYMAP_COMPILE_NO_FLAGS); | 90 | xkb_keymap_new_from_names(context, &rules, XKB_KEYMAP_COMPILE_NO_FLAGS); |
91 | wlr_keyboard_set_keymap(keyboard->seat_device->input_device->wlr_device->keyboard, keyboard->keymap); | 91 | wlr_keyboard_set_keymap(wlr_device->keyboard, keyboard->keymap); |
92 | wlr_keyboard_set_repeat_info(wlr_device->keyboard, 25, 600); | ||
92 | xkb_context_unref(context); | 93 | xkb_context_unref(context); |
93 | 94 | ||
94 | wl_list_remove(&keyboard->keyboard_key.link); | 95 | wl_list_remove(&keyboard->keyboard_key.link); |
95 | wl_signal_add( | 96 | wl_signal_add(&wlr_device->keyboard->events.key, &keyboard->keyboard_key); |
96 | &keyboard->seat_device->input_device->wlr_device->keyboard->events.key, | ||
97 | &keyboard->keyboard_key); | ||
98 | keyboard->keyboard_key.notify = handle_keyboard_key; | 97 | keyboard->keyboard_key.notify = handle_keyboard_key; |
99 | 98 | ||
100 | wl_list_remove(&keyboard->keyboard_modifiers.link); | 99 | wl_list_remove(&keyboard->keyboard_modifiers.link); |
101 | wl_signal_add( | 100 | wl_signal_add( &wlr_device->keyboard->events.modifiers, |
102 | &keyboard->seat_device->input_device->wlr_device->keyboard->events.modifiers, | ||
103 | &keyboard->keyboard_modifiers); | 101 | &keyboard->keyboard_modifiers); |
104 | keyboard->keyboard_modifiers.notify = handle_keyboard_modifiers; | 102 | keyboard->keyboard_modifiers.notify = handle_keyboard_modifiers; |
105 | } | 103 | } |