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
This commit is contained in:
Ryan Dwyer 2019-01-28 19:06:42 +10:00 committed by emersion
parent 68a28e482f
commit 6b8bf10941
12 changed files with 35 additions and 30 deletions

View file

@ -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;
}