diff options
Diffstat (limited to 'sway/commands/seat/attach.c')
-rw-r--r-- | sway/commands/seat/attach.c | 21 |
1 files changed, 8 insertions, 13 deletions
diff --git a/sway/commands/seat/attach.c b/sway/commands/seat/attach.c index 8d646c2d..0fb17f1d 100644 --- a/sway/commands/seat/attach.c +++ b/sway/commands/seat/attach.c | |||
@@ -1,10 +1,7 @@ | |||
1 | #define _POSIX_C_SOURCE 200809L | 1 | #define _POSIX_C_SOURCE 200809L |
2 | #include <string.h> | 2 | #include <string.h> |
3 | #include <strings.h> | ||
4 | #include "sway/input/input-manager.h" | ||
5 | #include "sway/commands.h" | 3 | #include "sway/commands.h" |
6 | #include "sway/config.h" | 4 | #include "sway/config.h" |
7 | #include "log.h" | ||
8 | #include "stringop.h" | 5 | #include "stringop.h" |
9 | 6 | ||
10 | struct cmd_results *seat_cmd_attach(int argc, char **argv) { | 7 | struct cmd_results *seat_cmd_attach(int argc, char **argv) { |
@@ -12,19 +9,17 @@ struct cmd_results *seat_cmd_attach(int argc, char **argv) { | |||
12 | if ((error = checkarg(argc, "attach", EXPECTED_AT_LEAST, 1))) { | 9 | if ((error = checkarg(argc, "attach", EXPECTED_AT_LEAST, 1))) { |
13 | return error; | 10 | return error; |
14 | } | 11 | } |
15 | struct seat_config *current_seat_config = | 12 | if (!config->handler_context.seat_config) { |
16 | config->handler_context.seat_config; | ||
17 | if (!current_seat_config) { | ||
18 | return cmd_results_new(CMD_FAILURE, "attach", "No seat defined"); | 13 | return cmd_results_new(CMD_FAILURE, "attach", "No seat defined"); |
19 | } | 14 | } |
20 | 15 | ||
21 | struct seat_config *new_config = new_seat_config(current_seat_config->name); | 16 | struct seat_attachment_config *attachment = seat_attachment_config_new(); |
22 | struct seat_attachment_config *new_attachment = seat_attachment_config_new(); | 17 | if (!attachment) { |
23 | new_attachment->identifier = strdup(argv[0]); | 18 | return cmd_results_new(CMD_FAILURE, "attach", |
24 | list_add(new_config->attachments, new_attachment); | 19 | "Failed to allocate seat attachment config"); |
25 | |||
26 | if (!config->validating) { | ||
27 | apply_seat_config(new_config); | ||
28 | } | 20 | } |
21 | attachment->identifier = strdup(argv[0]); | ||
22 | list_add(config->handler_context.seat_config->attachments, attachment); | ||
23 | |||
29 | return cmd_results_new(CMD_SUCCESS, NULL, NULL); | 24 | return cmd_results_new(CMD_SUCCESS, NULL, NULL); |
30 | } | 25 | } |