diff options
Diffstat (limited to 'sway/desktop')
-rw-r--r-- | sway/desktop/xdg_shell_v6.c | 10 | ||||
-rw-r--r-- | sway/desktop/xwayland.c | 3 |
2 files changed, 13 insertions, 0 deletions
diff --git a/sway/desktop/xdg_shell_v6.c b/sway/desktop/xdg_shell_v6.c index c66cc39a..8361aab3 100644 --- a/sway/desktop/xdg_shell_v6.c +++ b/sway/desktop/xdg_shell_v6.c @@ -118,6 +118,15 @@ static void set_activated(struct sway_view *view, bool activated) { } } +static void for_each_surface(struct sway_view *view, + wlr_surface_iterator_func_t iterator, void *user_data) { + if (xdg_shell_v6_view_from_view(view) == NULL) { + return; + } + wlr_xdg_surface_v6_for_each_surface(view->wlr_xdg_surface_v6, iterator, + user_data); +} + static void _close(struct sway_view *view) { if (xdg_shell_v6_view_from_view(view) == NULL) { return; @@ -146,6 +155,7 @@ static const struct sway_view_impl view_impl = { .get_prop = get_prop, .configure = configure, .set_activated = set_activated, + .for_each_surface = for_each_surface, .close = _close, .destroy = destroy, }; diff --git a/sway/desktop/xwayland.c b/sway/desktop/xwayland.c index e3da1da7..10bfcc89 100644 --- a/sway/desktop/xwayland.c +++ b/sway/desktop/xwayland.c @@ -58,6 +58,9 @@ static void unmanaged_handle_map(struct wl_listener *listener, void *data) { surface->lx = xsurface->x; surface->ly = xsurface->y; desktop_damage_whole_surface(xsurface->surface, surface->lx, surface->ly); + + // TODO: we don't send surface enter/leave events to xwayland unmanaged + // surfaces, but xwayland doesn't support HiDPI anyway } static void unmanaged_handle_unmap(struct wl_listener *listener, void *data) { |