aboutsummaryrefslogtreecommitdiffstats
path: root/sway/commands/mark.c
diff options
context:
space:
mode:
authorLibravatar Ryan Dwyer <ryandwyer1@gmail.com>2018-10-31 21:27:38 +1000
committerLibravatar Ryan Dwyer <ryandwyer1@gmail.com>2018-11-01 18:09:51 +1000
commit9fc736f4e1804b06538191786500f927ba0cda13 (patch)
tree8399de2ba00a8a0dd57f49dfc30455c330500b54 /sway/commands/mark.c
parentMerge pull request #3040 from RyanDwyer/border-props-to-container (diff)
downloadsway-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.c19
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}