From 399a224a18429b5724222c8ec4f9e005b2051a16 Mon Sep 17 00:00:00 2001 From: Michael Olbrich Date: Wed, 10 Oct 2018 13:49:45 +0200 Subject: [PATCH] libweston-desktop/xdg-shell: update view transforms for xdg popup surfaces For toplevel surfaces, the shell will do the same thing. Without this, the commit does not trigger repaints, because the output mask for the surface is not set. Without this the popup is not shown unless something else triggers a repaint. This is usually not seen because the mouse cursor triggers a repaint at the same time. Signed-off-by: Michael Olbrich --- libweston-desktop/xdg-shell-v6.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/libweston-desktop/xdg-shell-v6.c b/libweston-desktop/xdg-shell-v6.c index ccdd1937..b6cb599c 100644 --- a/libweston-desktop/xdg-shell-v6.c +++ b/libweston-desktop/xdg-shell-v6.c @@ -829,6 +829,13 @@ weston_desktop_xdg_popup_update_position(struct weston_desktop_surface *dsurface static void weston_desktop_xdg_popup_committed(struct weston_desktop_xdg_popup *popup) { + struct weston_surface *wsurface = + weston_desktop_surface_get_surface (popup->base.desktop_surface); + struct weston_view *view; + + wl_list_for_each(view, &wsurface->views, surface_link) + weston_view_update_transform(view); + if (!popup->committed) weston_desktop_xdg_surface_schedule_configure(&popup->base); popup->committed = true;