aboutsummaryrefslogtreecommitdiffstats
path: root/sway/tree/workspace.c
diff options
context:
space:
mode:
authorLibravatar Ryan Dwyer <ryandwyer1@gmail.com>2018-08-19 17:00:51 +1000
committerLibravatar Ryan Dwyer <ryandwyer1@gmail.com>2018-08-26 09:52:12 +1000
commit8bed4be1f387f9aa48910db1cf979cd847a9a2e3 (patch)
tree6bb0cd51d006de03535d4019d05c6787e8dd17aa /sway/tree/workspace.c
parentMerge pull request #2512 from apreiml/workspace_move_wrap (diff)
downloadsway-8bed4be1f387f9aa48910db1cf979cd847a9a2e3.tar.gz
sway-8bed4be1f387f9aa48910db1cf979cd847a9a2e3.tar.zst
sway-8bed4be1f387f9aa48910db1cf979cd847a9a2e3.zip
Make separate gaps functions per container type
In preparation for using type safety.
Diffstat (limited to 'sway/tree/workspace.c')
-rw-r--r--sway/tree/workspace.c35
1 files changed, 35 insertions, 0 deletions
diff --git a/sway/tree/workspace.c b/sway/tree/workspace.c
index 93c4b3d3..d930826e 100644
--- a/sway/tree/workspace.c
+++ b/sway/tree/workspace.c
@@ -665,3 +665,38 @@ void workspace_add_floating(struct sway_container *workspace,
665 container_set_dirty(workspace); 665 container_set_dirty(workspace);
666 container_set_dirty(con); 666 container_set_dirty(con);
667} 667}
668
669void workspace_remove_gaps(struct sway_container *ws) {
670 if (!sway_assert(ws->type == C_WORKSPACE, "Expected a workspace")) {
671 return;
672 }
673 if (ws->current_gaps == 0) {
674 return;
675 }
676
677 ws->width += ws->current_gaps * 2;
678 ws->height += ws->current_gaps * 2;
679 ws->x -= ws->current_gaps;
680 ws->y -= ws->current_gaps;
681 ws->current_gaps = 0;
682}
683
684void workspace_add_gaps(struct sway_container *ws) {
685 if (!sway_assert(ws->type == C_WORKSPACE, "Expected a workspace")) {
686 return;
687 }
688 if (ws->current_gaps > 0) {
689 return;
690 }
691 bool should_apply =
692 config->edge_gaps || (config->smart_gaps && ws->children->length > 1);
693 if (!should_apply) {
694 return;
695 }
696
697 ws->current_gaps = ws->has_gaps ? ws->gaps_inner : config->gaps_inner;
698 ws->x += ws->current_gaps;
699 ws->y += ws->current_gaps;
700 ws->width -= 2 * ws->current_gaps;
701 ws->height -= 2 * ws->current_gaps;
702}