aboutsummaryrefslogtreecommitdiffstats
path: root/sway/tree/container.c
diff options
context:
space:
mode:
authorLibravatar Ryan Dwyer <ryandwyer1@gmail.com>2019-01-28 19:06:42 +1000
committerLibravatar emersion <contact@emersion.fr>2019-01-28 10:35:40 +0100
commit6b8bf10941ec83ac7a6e364b9c34f8c6f74d814a (patch)
tree61a9e61c64fd1b88a79b06a6f9dafeb84e4f8c35 /sway/tree/container.c
parentAdd note about required scdoc version to README. (diff)
downloadsway-6b8bf10941ec83ac7a6e364b9c34f8c6f74d814a.tar.gz
sway-6b8bf10941ec83ac7a6e364b9c34f8c6f74d814a.tar.zst
sway-6b8bf10941ec83ac7a6e364b9c34f8c6f74d814a.zip
Introduce container_is_scratchpad_hidden
Just a convenience function that improves readability of the code. Other things worth noting: * container_get_siblings and container_sibling_index no longer use the const keyword * container_handle_fullscreen_reparent is only ever called after attaching the container to a workspace, so its con->workspace check has been changed to an assertion
Diffstat (limited to 'sway/tree/container.c')
-rw-r--r--sway/tree/container.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/sway/tree/container.c b/sway/tree/container.c
index 1cf5c8e7..e20e44d4 100644
--- a/sway/tree/container.c
+++ b/sway/tree/container.c
@@ -1156,11 +1156,11 @@ enum sway_container_layout container_current_parent_layout(
1156 return con->current.workspace->current.layout; 1156 return con->current.workspace->current.layout;
1157} 1157}
1158 1158
1159list_t *container_get_siblings(const struct sway_container *container) { 1159list_t *container_get_siblings(struct sway_container *container) {
1160 if (container->parent) { 1160 if (container->parent) {
1161 return container->parent->children; 1161 return container->parent->children;
1162 } 1162 }
1163 if (!container->workspace) { 1163 if (container_is_scratchpad_hidden(container)) {
1164 return NULL; 1164 return NULL;
1165 } 1165 }
1166 if (list_find(container->workspace->tiling, container) != -1) { 1166 if (list_find(container->workspace->tiling, container) != -1) {
@@ -1169,7 +1169,7 @@ list_t *container_get_siblings(const struct sway_container *container) {
1169 return container->workspace->floating; 1169 return container->workspace->floating;
1170} 1170}
1171 1171
1172int container_sibling_index(const struct sway_container *child) { 1172int container_sibling_index(struct sway_container *child) {
1173 return list_find(container_get_siblings(child), child); 1173 return list_find(container_get_siblings(child), child);
1174} 1174}
1175 1175
@@ -1181,7 +1181,10 @@ list_t *container_get_current_siblings(struct sway_container *container) {
1181} 1181}
1182 1182
1183void container_handle_fullscreen_reparent(struct sway_container *con) { 1183void container_handle_fullscreen_reparent(struct sway_container *con) {
1184 if (con->fullscreen_mode != FULLSCREEN_WORKSPACE || !con->workspace || 1184 if (!sway_assert(con->workspace, "Expected con to have a workspace")) {
1185 return;
1186 }
1187 if (con->fullscreen_mode != FULLSCREEN_WORKSPACE ||
1185 con->workspace->fullscreen == con) { 1188 con->workspace->fullscreen == con) {
1186 return; 1189 return;
1187 } 1190 }
@@ -1460,3 +1463,7 @@ void container_raise_floating(struct sway_container *con) {
1460 node_set_dirty(&floater->workspace->node); 1463 node_set_dirty(&floater->workspace->node);
1461 } 1464 }
1462} 1465}
1466
1467bool container_is_scratchpad_hidden(struct sway_container *con) {
1468 return con->scratchpad && !con->workspace;
1469}