From 6b8bf10941ec83ac7a6e364b9c34f8c6f74d814a Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Mon, 28 Jan 2019 19:06:42 +1000 Subject: 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 --- sway/tree/container.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) (limited to 'sway/tree/container.c') 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( return con->current.workspace->current.layout; } -list_t *container_get_siblings(const struct sway_container *container) { +list_t *container_get_siblings(struct sway_container *container) { if (container->parent) { return container->parent->children; } - if (!container->workspace) { + if (container_is_scratchpad_hidden(container)) { return NULL; } if (list_find(container->workspace->tiling, container) != -1) { @@ -1169,7 +1169,7 @@ list_t *container_get_siblings(const struct sway_container *container) { return container->workspace->floating; } -int container_sibling_index(const struct sway_container *child) { +int container_sibling_index(struct sway_container *child) { return list_find(container_get_siblings(child), child); } @@ -1181,7 +1181,10 @@ list_t *container_get_current_siblings(struct sway_container *container) { } void container_handle_fullscreen_reparent(struct sway_container *con) { - if (con->fullscreen_mode != FULLSCREEN_WORKSPACE || !con->workspace || + if (!sway_assert(con->workspace, "Expected con to have a workspace")) { + return; + } + if (con->fullscreen_mode != FULLSCREEN_WORKSPACE || con->workspace->fullscreen == con) { return; } @@ -1460,3 +1463,7 @@ void container_raise_floating(struct sway_container *con) { node_set_dirty(&floater->workspace->node); } } + +bool container_is_scratchpad_hidden(struct sway_container *con) { + return con->scratchpad && !con->workspace; +} -- cgit v1.2.3-54-g00ecf