aboutsummaryrefslogtreecommitdiffstats
path: root/sway/tree/container.c
diff options
context:
space:
mode:
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}