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 <m.olbrich@pengutronix.de>
This commit is contained in:
Michael Olbrich 2018-10-10 13:49:45 +02:00 committed by Daniel Stone
parent 486b463a18
commit 399a224a18
1 changed files with 7 additions and 0 deletions

View File

@ -829,6 +829,13 @@ weston_desktop_xdg_popup_update_position(struct weston_desktop_surface *dsurface
static void static void
weston_desktop_xdg_popup_committed(struct weston_desktop_xdg_popup *popup) 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) if (!popup->committed)
weston_desktop_xdg_surface_schedule_configure(&popup->base); weston_desktop_xdg_surface_schedule_configure(&popup->base);
popup->committed = true; popup->committed = true;