mirror of
https://github.com/swaywm/sway.git
synced 2026-04-20 06:47:03 -04:00
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.)
This commit is contained in:
parent
a56098a24e
commit
07042486c3
7 changed files with 25 additions and 14 deletions
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue