diff options
Diffstat (limited to 'sway/tree/container.c')
-rw-r--r-- | sway/tree/container.c | 15 |
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 | ||
1159 | list_t *container_get_siblings(const struct sway_container *container) { | 1159 | list_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 | ||
1172 | int container_sibling_index(const struct sway_container *child) { | 1172 | int 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 | ||
1183 | void container_handle_fullscreen_reparent(struct sway_container *con) { | 1183 | void 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 | |||
1467 | bool container_is_scratchpad_hidden(struct sway_container *con) { | ||
1468 | return con->scratchpad && !con->workspace; | ||
1469 | } | ||