From a034e534eaeece60d58cdd78f29b9c39bda7cc4f Mon Sep 17 00:00:00 2001 From: Konstantin Pospelov Date: Tue, 5 Mar 2019 22:38:26 +0300 Subject: [PATCH] bindsym: change xkb_rule_names initialization --- include/sway/config.h | 3 ++- sway/config.c | 5 +++-- sway/config/input.c | 17 +++++++---------- 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 49bf443402..4e5a966033 100644 --- a/include/sway/config.h +++ b/include/sway/config.h @@ -557,7 +557,8 @@ void merge_input_config(struct input_config *dst, struct input_config *src); struct input_config *store_input_config(struct input_config *ic); -struct xkb_rule_names input_config_get_rule_names(struct input_config *ic); +void input_config_fill_rule_names(struct input_config *ic, + struct xkb_rule_names *rules); void free_input_config(struct input_config *ic); diff --git a/sway/config.c b/sway/config.c index d07d4088da..c0405b0dad 100644 --- a/sway/config.c +++ b/sway/config.c @@ -321,7 +321,7 @@ static void config_defaults(struct sway_config *config) { if (!(config->ipc_policies = create_list())) goto cleanup; // The keysym to keycode translation - struct xkb_rule_names rules = {}; + struct xkb_rule_names rules = {0}; config->keysym_translation_state = keysym_translation_state_create(rules); @@ -973,7 +973,8 @@ static void translate_bindings(list_t *bindings, list_t *bindsyms, void translate_keysyms(struct input_config *input_config) { keysym_translation_state_destroy(config->keysym_translation_state); - struct xkb_rule_names rules = input_config_get_rule_names(input_config); + struct xkb_rule_names rules = {0}; + input_config_fill_rule_names(input_config, &rules); config->keysym_translation_state = keysym_translation_state_create(rules); diff --git a/sway/config/input.c b/sway/config/input.c index cadbfc838c..00658a5e56 100644 --- a/sway/config/input.c +++ b/sway/config/input.c @@ -179,16 +179,13 @@ struct input_config *store_input_config(struct input_config *ic) { return ic; } -struct xkb_rule_names input_config_get_rule_names(struct input_config *ic) { - struct xkb_rule_names rules = { - .layout = ic->xkb_layout, - .model = ic->xkb_model, - .options = ic->xkb_options, - .rules = ic->xkb_rules, - .variant = ic->xkb_variant, - }; - - return rules; +void input_config_fill_rule_names(struct input_config *ic, + struct xkb_rule_names *rules) { + rules->layout = ic->xkb_layout; + rules->model = ic->xkb_model; + rules->options = ic->xkb_options; + rules->rules = ic->xkb_rules; + rules->variant = ic->xkb_variant; } void free_input_config(struct input_config *ic) { diff --git a/sway/input/keyboard.c b/sway/input/keyboard.c index 3214a6a6b4..e2b663ea97 100644 --- a/sway/input/keyboard.c +++ b/sway/input/keyboard.c @@ -475,11 +475,9 @@ void sway_keyboard_configure(struct sway_keyboard *keyboard) { struct wlr_input_device *wlr_device = keyboard->seat_device->input_device->wlr_device; - struct xkb_rule_names rules; + struct xkb_rule_names rules = {0}; if (input_config) { - rules = input_config_get_rule_names(input_config); - } else { - memset(&rules, 0, sizeof(rules)); + input_config_fill_rule_names(input_config, &rules); } if (!rules.layout) {