diff options
author | Ryan Dwyer <ryandwyer1@gmail.com> | 2018-10-31 21:27:38 +1000 |
---|---|---|
committer | Ryan Dwyer <ryandwyer1@gmail.com> | 2018-11-01 18:09:51 +1000 |
commit | 9fc736f4e1804b06538191786500f927ba0cda13 (patch) | |
tree | 8399de2ba00a8a0dd57f49dfc30455c330500b54 /sway/commands/mark.c | |
parent | Merge pull request #3040 from RyanDwyer/border-props-to-container (diff) | |
download | sway-9fc736f4e1804b06538191786500f927ba0cda13.tar.gz sway-9fc736f4e1804b06538191786500f927ba0cda13.tar.zst sway-9fc736f4e1804b06538191786500f927ba0cda13.zip |
Move view marks properties to container struct
Like border properties, this will be needed to implement layout saving
and restoring.
Diffstat (limited to 'sway/commands/mark.c')
-rw-r--r-- | sway/commands/mark.c | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/sway/commands/mark.c b/sway/commands/mark.c index b1f47be1..c76e1d63 100644 --- a/sway/commands/mark.c +++ b/sway/commands/mark.c | |||
@@ -19,11 +19,10 @@ struct cmd_results *cmd_mark(int argc, char **argv) { | |||
19 | return error; | 19 | return error; |
20 | } | 20 | } |
21 | struct sway_container *container = config->handler_context.container; | 21 | struct sway_container *container = config->handler_context.container; |
22 | if (!container || !container->view) { | 22 | if (!container) { |
23 | return cmd_results_new(CMD_INVALID, "mark", | 23 | return cmd_results_new(CMD_INVALID, "mark", |
24 | "Only views can have marks"); | 24 | "Only containers can have marks"); |
25 | } | 25 | } |
26 | struct sway_view *view = container->view; | ||
27 | 26 | ||
28 | bool add = false, toggle = false; | 27 | bool add = false, toggle = false; |
29 | while (argc > 0 && strncmp(*argv, "--", 2) == 0) { | 28 | while (argc > 0 && strncmp(*argv, "--", 2) == 0) { |
@@ -47,22 +46,24 @@ struct cmd_results *cmd_mark(int argc, char **argv) { | |||
47 | } | 46 | } |
48 | 47 | ||
49 | char *mark = join_args(argv, argc); | 48 | char *mark = join_args(argv, argc); |
50 | bool had_mark = view_has_mark(view, mark); | 49 | bool had_mark = container_has_mark(container, mark); |
51 | 50 | ||
52 | if (!add) { | 51 | if (!add) { |
53 | // Replacing | 52 | // Replacing |
54 | view_clear_marks(view); | 53 | container_clear_marks(container); |
55 | } | 54 | } |
56 | 55 | ||
57 | view_find_and_unmark(mark); | 56 | container_find_and_unmark(mark); |
58 | 57 | ||
59 | if (!toggle || !had_mark) { | 58 | if (!toggle || !had_mark) { |
60 | view_add_mark(view, mark); | 59 | container_add_mark(container, mark); |
61 | } | 60 | } |
62 | 61 | ||
63 | free(mark); | 62 | free(mark); |
64 | view_update_marks_textures(view); | 63 | container_update_marks_textures(container); |
65 | view_execute_criteria(view); | 64 | if (container->view) { |
65 | view_execute_criteria(container->view); | ||
66 | } | ||
66 | 67 | ||
67 | return cmd_results_new(CMD_SUCCESS, NULL, NULL); | 68 | return cmd_results_new(CMD_SUCCESS, NULL, NULL); |
68 | } | 69 | } |