diff options
Diffstat (limited to 'sway/desktop')
-rw-r--r-- | sway/desktop/xdg_shell.c | 2 | ||||
-rw-r--r-- | sway/desktop/xdg_shell_v6.c | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/sway/desktop/xdg_shell.c b/sway/desktop/xdg_shell.c index b5dcfb0f..152bd26f 100644 --- a/sway/desktop/xdg_shell.c +++ b/sway/desktop/xdg_shell.c | |||
@@ -216,7 +216,7 @@ static bool is_transient_for(struct sway_view *child, | |||
216 | return false; | 216 | return false; |
217 | } | 217 | } |
218 | struct wlr_xdg_surface *surface = child->wlr_xdg_surface; | 218 | struct wlr_xdg_surface *surface = child->wlr_xdg_surface; |
219 | while (surface) { | 219 | while (surface && surface->role == WLR_XDG_SURFACE_ROLE_TOPLEVEL) { |
220 | if (surface->toplevel->parent == ancestor->wlr_xdg_surface) { | 220 | if (surface->toplevel->parent == ancestor->wlr_xdg_surface) { |
221 | return true; | 221 | return true; |
222 | } | 222 | } |
diff --git a/sway/desktop/xdg_shell_v6.c b/sway/desktop/xdg_shell_v6.c index a7ea163f..3eed54ab 100644 --- a/sway/desktop/xdg_shell_v6.c +++ b/sway/desktop/xdg_shell_v6.c | |||
@@ -213,7 +213,7 @@ static bool is_transient_for(struct sway_view *child, | |||
213 | return false; | 213 | return false; |
214 | } | 214 | } |
215 | struct wlr_xdg_surface_v6 *surface = child->wlr_xdg_surface_v6; | 215 | struct wlr_xdg_surface_v6 *surface = child->wlr_xdg_surface_v6; |
216 | while (surface) { | 216 | while (surface && surface->role == WLR_XDG_SURFACE_V6_ROLE_TOPLEVEL) { |
217 | if (surface->toplevel->parent == ancestor->wlr_xdg_surface_v6) { | 217 | if (surface->toplevel->parent == ancestor->wlr_xdg_surface_v6) { |
218 | return true; | 218 | return true; |
219 | } | 219 | } |