diff options
-rw-r--r-- | include/sway/config.h | 3 | ||||
-rw-r--r-- | sway/config.c | 5 | ||||
-rw-r--r-- | sway/config/input.c | 17 | ||||
-rw-r--r-- | sway/input/keyboard.c | 6 |
4 files changed, 14 insertions, 17 deletions
diff --git a/include/sway/config.h b/include/sway/config.h index a0a98fb6..01c99cb4 100644 --- a/include/sway/config.h +++ b/include/sway/config.h | |||
@@ -577,7 +577,8 @@ void merge_input_config(struct input_config *dst, struct input_config *src); | |||
577 | 577 | ||
578 | struct input_config *store_input_config(struct input_config *ic); | 578 | struct input_config *store_input_config(struct input_config *ic); |
579 | 579 | ||
580 | struct xkb_rule_names input_config_get_rule_names(struct input_config *ic); | 580 | void input_config_fill_rule_names(struct input_config *ic, |
581 | struct xkb_rule_names *rules); | ||
581 | 582 | ||
582 | void free_input_config(struct input_config *ic); | 583 | void free_input_config(struct input_config *ic); |
583 | 584 | ||
diff --git a/sway/config.c b/sway/config.c index fed01eb4..d4a4a2f7 100644 --- a/sway/config.c +++ b/sway/config.c | |||
@@ -337,7 +337,7 @@ static void config_defaults(struct sway_config *config) { | |||
337 | if (!(config->ipc_policies = create_list())) goto cleanup; | 337 | if (!(config->ipc_policies = create_list())) goto cleanup; |
338 | 338 | ||
339 | // The keysym to keycode translation | 339 | // The keysym to keycode translation |
340 | struct xkb_rule_names rules = {}; | 340 | struct xkb_rule_names rules = {0}; |
341 | config->keysym_translation_state = | 341 | config->keysym_translation_state = |
342 | keysym_translation_state_create(rules); | 342 | keysym_translation_state_create(rules); |
343 | 343 | ||
@@ -989,7 +989,8 @@ static void translate_binding_list(list_t *bindings, list_t *bindsyms, | |||
989 | void translate_keysyms(struct input_config *input_config) { | 989 | void translate_keysyms(struct input_config *input_config) { |
990 | keysym_translation_state_destroy(config->keysym_translation_state); | 990 | keysym_translation_state_destroy(config->keysym_translation_state); |
991 | 991 | ||
992 | struct xkb_rule_names rules = input_config_get_rule_names(input_config); | 992 | struct xkb_rule_names rules = {0}; |
993 | input_config_fill_rule_names(input_config, &rules); | ||
993 | config->keysym_translation_state = | 994 | config->keysym_translation_state = |
994 | keysym_translation_state_create(rules); | 995 | keysym_translation_state_create(rules); |
995 | 996 | ||
diff --git a/sway/config/input.c b/sway/config/input.c index 595aa029..9c533e71 100644 --- a/sway/config/input.c +++ b/sway/config/input.c | |||
@@ -212,16 +212,13 @@ struct input_config *store_input_config(struct input_config *ic) { | |||
212 | return ic; | 212 | return ic; |
213 | } | 213 | } |
214 | 214 | ||
215 | struct xkb_rule_names input_config_get_rule_names(struct input_config *ic) { | 215 | void input_config_fill_rule_names(struct input_config *ic, |
216 | struct xkb_rule_names rules = { | 216 | struct xkb_rule_names *rules) { |
217 | .layout = ic->xkb_layout, | 217 | rules->layout = ic->xkb_layout; |
218 | .model = ic->xkb_model, | 218 | rules->model = ic->xkb_model; |
219 | .options = ic->xkb_options, | 219 | rules->options = ic->xkb_options; |
220 | .rules = ic->xkb_rules, | 220 | rules->rules = ic->xkb_rules; |
221 | .variant = ic->xkb_variant, | 221 | rules->variant = ic->xkb_variant; |
222 | }; | ||
223 | |||
224 | return rules; | ||
225 | } | 222 | } |
226 | 223 | ||
227 | void free_input_config(struct input_config *ic) { | 224 | void free_input_config(struct input_config *ic) { |
diff --git a/sway/input/keyboard.c b/sway/input/keyboard.c index 04b8b0ce..396cc865 100644 --- a/sway/input/keyboard.c +++ b/sway/input/keyboard.c | |||
@@ -482,11 +482,9 @@ void sway_keyboard_configure(struct sway_keyboard *keyboard) { | |||
482 | struct wlr_input_device *wlr_device = | 482 | struct wlr_input_device *wlr_device = |
483 | keyboard->seat_device->input_device->wlr_device; | 483 | keyboard->seat_device->input_device->wlr_device; |
484 | 484 | ||
485 | struct xkb_rule_names rules; | 485 | struct xkb_rule_names rules = {0}; |
486 | if (input_config) { | 486 | if (input_config) { |
487 | rules = input_config_get_rule_names(input_config); | 487 | input_config_fill_rule_names(input_config, &rules); |
488 | } else { | ||
489 | memset(&rules, 0, sizeof(rules)); | ||
490 | } | 488 | } |
491 | 489 | ||
492 | if (!rules.layout) { | 490 | if (!rules.layout) { |