diff options
author | Ryan Dwyer <ryandwyer1@gmail.com> | 2019-01-28 19:06:42 +1000 |
---|---|---|
committer | emersion <contact@emersion.fr> | 2019-01-28 10:35:40 +0100 |
commit | 6b8bf10941ec83ac7a6e364b9c34f8c6f74d814a (patch) | |
tree | 61a9e61c64fd1b88a79b06a6f9dafeb84e4f8c35 /sway/tree/container.c | |
parent | Add note about required scdoc version to README. (diff) | |
download | sway-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.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 | } | ||