diff options
author | Tudor Brindus <[email protected]> | 2020-11-03 00:16:15 -0500 |
---|---|---|
committer | Brian Ashworth <[email protected]> | 2020-11-11 20:43:58 -0500 |
commit | 07042486c3c4b8e7083405ba9b34b1b87f8d396d (patch) | |
tree | 5ec7b68db2acbc1c68538a08b0b039477e8f8858 /sway/tree/view.c | |
parent | a56098a24e43f459d52a638611a9084c9b1a32d8 (diff) |
tree/container: introduce `container_is_sticky[_or_child]` functions
To query whether a container is sticky, checking `con->is_sticky` is
insufficient. `container_is_floating_or_child` must also return true;
this led to a lot of repetition.
This commit introduces `container_is_sticky[_or_child]` functions, and
switches all stickiness checks to use them. (Including ones where the
container is already known to be floating, for consistency.)
Diffstat (limited to 'sway/tree/view.c')
-rw-r--r-- | sway/tree/view.c | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/sway/tree/view.c b/sway/tree/view.c index d699b01e..354f2d34 100644 --- a/sway/tree/view.c +++ b/sway/tree/view.c @@ -1244,13 +1244,9 @@ bool view_is_visible(struct sway_view *view) { return false; } } - // Determine if view is nested inside a floating container which is sticky - struct sway_container *floater = view->container; - while (floater->parent) { - floater = floater->parent; - } - bool is_sticky = container_is_floating(floater) && floater->is_sticky; - if (!is_sticky && workspace && !workspace_is_visible(workspace)) { + + if (!container_is_sticky_or_child(view->container) && workspace && + !workspace_is_visible(workspace)) { return false; } // Check view isn't in a tabbed or stacked container on an inactive tab |