aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar Konstantin Pospelov <kupospelov@gmail.com>2019-03-05 22:38:26 +0300
committerLibravatar Simon Ser <contact@emersion.fr>2019-04-26 20:56:48 +0300
commitc42497aca00a234679ca5dc2884ab40afe0d84ad (patch)
treeee0b1521537cd97c943f894a29efa5e4c12bb1e3
parentbindsym: consider xkb_rule_names for --to-code (diff)
downloadsway-c42497aca00a234679ca5dc2884ab40afe0d84ad.tar.gz
sway-c42497aca00a234679ca5dc2884ab40afe0d84ad.tar.zst
sway-c42497aca00a234679ca5dc2884ab40afe0d84ad.zip
bindsym: change xkb_rule_names initialization
-rw-r--r--include/sway/config.h3
-rw-r--r--sway/config.c5
-rw-r--r--sway/config/input.c17
-rw-r--r--sway/input/keyboard.c6
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
578struct input_config *store_input_config(struct input_config *ic); 578struct input_config *store_input_config(struct input_config *ic);
579 579
580struct xkb_rule_names input_config_get_rule_names(struct input_config *ic); 580void input_config_fill_rule_names(struct input_config *ic,
581 struct xkb_rule_names *rules);
581 582
582void free_input_config(struct input_config *ic); 583void 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,
989void translate_keysyms(struct input_config *input_config) { 989void 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
215struct xkb_rule_names input_config_get_rule_names(struct input_config *ic) { 215void 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
227void free_input_config(struct input_config *ic) { 224void 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) {