diff --git a/sway/tree/container.c b/sway/tree/container.c index 6a9ce1c4c..22d1e42a2 100644 --- a/sway/tree/container.c +++ b/sway/tree/container.c @@ -1226,12 +1226,18 @@ void container_discover_outputs(struct sway_container *con) { } enum sway_container_layout container_parent_layout(struct sway_container *con) { + if (container_is_floating(con)) { + return L_NONE; + } + if (con->parent) { return con->parent->layout; } + if (con->workspace) { return con->workspace->layout; } + return L_NONE; } diff --git a/sway/tree/view.c b/sway/tree/view.c index c1ce4e6b0..5c49a5058 100644 --- a/sway/tree/view.c +++ b/sway/tree/view.c @@ -1278,8 +1278,7 @@ bool view_is_visible(struct sway_view *view) { struct sway_container *con = view->container; while (con) { enum sway_container_layout layout = container_parent_layout(con); - if ((layout == L_TABBED || layout == L_STACKED) - && !container_is_floating(con)) { + if (layout == L_TABBED || layout == L_STACKED) { struct sway_node *parent = con->parent ? &con->parent->node : &con->workspace->node; if (seat_get_active_tiling_child(seat, parent) != &con->node) {