aboutsummaryrefslogtreecommitdiff
path: root/sway/commands/gaps.c
diff options
context:
space:
mode:
authorDrew DeVault <sir@cmpwn.com>2018-09-05 09:33:27 -0400
committerGitHub <noreply@github.com>2018-09-05 09:33:27 -0400
commit610eb946171f782165a20614b2d3318b89273990 (patch)
tree05eec1df1ef48e05b23d273d31143ad32e7632d2 /sway/commands/gaps.c
parentaa2bf98e0442f9bf41a852c2fafee5b0897010a2 (diff)
parentdbf4aa3e33bdee53876c6893b15ac3f224818e7c (diff)
Merge pull request #2540 from RyanDwyer/typesafety
Implement type safe arguments and demote sway_container
Diffstat (limited to 'sway/commands/gaps.c')
-rw-r--r--sway/commands/gaps.c35
1 files changed, 21 insertions, 14 deletions
diff --git a/sway/commands/gaps.c b/sway/commands/gaps.c
index 3906eb70..d676e475 100644
--- a/sway/commands/gaps.c
+++ b/sway/commands/gaps.c
@@ -2,6 +2,7 @@
#include "sway/commands.h"
#include "sway/config.h"
#include "sway/tree/arrange.h"
+#include "sway/tree/workspace.h"
#include "log.h"
#include "stringop.h"
#include <math.h>
@@ -43,7 +44,7 @@ struct cmd_results *cmd_gaps(int argc, char **argv) {
return cmd_results_new(CMD_INVALID, "gaps",
"gaps edge_gaps on|off|toggle");
}
- arrange_windows(&root_container);
+ arrange_root();
} else {
int amount_idx = 0; // the current index in argv
enum gaps_op op = GAPS_OP_SET;
@@ -124,7 +125,7 @@ struct cmd_results *cmd_gaps(int argc, char **argv) {
if (amount_idx == 0) { // gaps <amount>
config->gaps_inner = val;
config->gaps_outer = val;
- arrange_windows(&root_container);
+ arrange_root();
return cmd_results_new(CMD_SUCCESS, NULL, NULL);
}
// Other variants. The middle-length variant (gaps inner|outer <amount>)
@@ -155,21 +156,27 @@ struct cmd_results *cmd_gaps(int argc, char **argv) {
} else {
config->gaps_outer = total;
}
- arrange_windows(&root_container);
+ arrange_root();
} else {
- struct sway_container *c =
- config->handler_context.current_container;
- if (scope == GAPS_SCOPE_WORKSPACE && c->type != C_WORKSPACE) {
- c = container_parent(c, C_WORKSPACE);
- }
- c->has_gaps = true;
- if (inner) {
- c->gaps_inner = total;
+ if (scope == GAPS_SCOPE_WORKSPACE) {
+ struct sway_workspace *ws = config->handler_context.workspace;
+ ws->has_gaps = true;
+ if (inner) {
+ ws->gaps_inner = total;
+ } else {
+ ws->gaps_outer = total;
+ }
+ arrange_workspace(ws);
} else {
- c->gaps_outer = total;
+ struct sway_container *c = config->handler_context.container;
+ c->has_gaps = true;
+ if (inner) {
+ c->gaps_inner = total;
+ } else {
+ c->gaps_outer = total;
+ }
+ arrange_workspace(c->workspace);
}
-
- arrange_windows(c->parent ? c->parent : &root_container);
}
}