diff options
Diffstat (limited to 'sway/commands/input/xkb_numlock.c')
-rw-r--r-- | sway/commands/input/xkb_numlock.c | 13 |
1 files changed, 4 insertions, 9 deletions
diff --git a/sway/commands/input/xkb_numlock.c b/sway/commands/input/xkb_numlock.c index 39675366..1367da44 100644 --- a/sway/commands/input/xkb_numlock.c +++ b/sway/commands/input/xkb_numlock.c | |||
@@ -9,25 +9,20 @@ struct cmd_results *input_cmd_xkb_numlock(int argc, char **argv) { | |||
9 | if ((error = checkarg(argc, "xkb_numlock", EXPECTED_AT_LEAST, 1))) { | 9 | if ((error = checkarg(argc, "xkb_numlock", EXPECTED_AT_LEAST, 1))) { |
10 | return error; | 10 | return error; |
11 | } | 11 | } |
12 | struct input_config *current_input_config = | 12 | struct input_config *ic = config->handler_context.input_config; |
13 | config->handler_context.input_config; | 13 | if (!ic) { |
14 | if (!current_input_config) { | ||
15 | return cmd_results_new(CMD_FAILURE, "xkb_numlock", | 14 | return cmd_results_new(CMD_FAILURE, "xkb_numlock", |
16 | "No input device defined."); | 15 | "No input device defined."); |
17 | } | 16 | } |
18 | struct input_config *new_config = | ||
19 | new_input_config(current_input_config->identifier); | ||
20 | 17 | ||
21 | if (strcasecmp(argv[0], "enabled") == 0) { | 18 | if (strcasecmp(argv[0], "enabled") == 0) { |
22 | new_config->xkb_numlock = 1; | 19 | ic->xkb_numlock = 1; |
23 | } else if (strcasecmp(argv[0], "disabled") == 0) { | 20 | } else if (strcasecmp(argv[0], "disabled") == 0) { |
24 | new_config->xkb_numlock = 0; | 21 | ic->xkb_numlock = 0; |
25 | } else { | 22 | } else { |
26 | free_input_config(new_config); | ||
27 | return cmd_results_new(CMD_INVALID, "xkb_numlock", | 23 | return cmd_results_new(CMD_INVALID, "xkb_numlock", |
28 | "Expected 'xkb_numlock <enabled|disabled>'"); | 24 | "Expected 'xkb_numlock <enabled|disabled>'"); |
29 | } | 25 | } |
30 | 26 | ||
31 | apply_input_config(new_config); | ||
32 | return cmd_results_new(CMD_SUCCESS, NULL, NULL); | 27 | return cmd_results_new(CMD_SUCCESS, NULL, NULL); |
33 | } | 28 | } |