diff options
author | Ryan Dwyer <ryandwyer1@gmail.com> | 2018-09-28 17:02:35 +1000 |
---|---|---|
committer | Ryan Dwyer <ryandwyer1@gmail.com> | 2018-09-28 17:02:35 +1000 |
commit | 22412f57b06b1b344de0a5ccf2172b7bd10eadb9 (patch) | |
tree | adade49d798690cb5d47bd536432de40d4cbbcea /sway/tree | |
parent | 58af0015170204de6d186f0f25cd0b9315d062d7 (diff) | |
download | sway-22412f57b06b1b344de0a5ccf2172b7bd10eadb9.tar.xz |
Fix floating views in tabbed/stacked workspaces not getting frame events
view_is_visible would return false, which meant the view wouldn't
receive a frame done event. view_is_visible needs to make an exception
for floating containers.
This also moves the workspace_is_visible check to an earlier location
for performance reasons.
Diffstat (limited to 'sway/tree')
-rw-r--r-- | sway/tree/view.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/sway/tree/view.c b/sway/tree/view.c index e370443c..a024f325 100644 --- a/sway/tree/view.c +++ b/sway/tree/view.c @@ -989,12 +989,16 @@ bool view_is_visible(struct sway_view *view) { floater = floater->parent; } bool is_sticky = container_is_floating(floater) && floater->is_sticky; + if (!is_sticky && !workspace_is_visible(workspace)) { + return false; + } // Check view isn't in a tabbed or stacked container on an inactive tab struct sway_seat *seat = input_manager_current_seat(input_manager); struct sway_container *con = view->container; while (con) { enum sway_container_layout layout = container_parent_layout(con); - if (layout == L_TABBED || layout == L_STACKED) { + if ((layout == L_TABBED || layout == L_STACKED) + && !container_is_floating(con)) { struct sway_node *parent = con->parent ? &con->parent->node : &con->workspace->node; if (seat_get_active_tiling_child(seat, parent) != &con->node) { @@ -1008,10 +1012,6 @@ bool view_is_visible(struct sway_view *view) { !container_is_fullscreen_or_child(view->container)) { return false; } - // Check the workspace is visible - if (!is_sticky) { - return workspace_is_visible(workspace); - } return true; } |