From: Quentin Glidic <[email protected]>

Signed-off-by: Quentin Glidic <[email protected]>
---
 libweston-desktop/xwayland.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/libweston-desktop/xwayland.c b/libweston-desktop/xwayland.c
index 4f4b453f..4dcb5f03 100644
--- a/libweston-desktop/xwayland.c
+++ b/libweston-desktop/xwayland.c
@@ -61,6 +61,7 @@ struct weston_desktop_xwayland_surface {
        const struct weston_xwayland_client_interface *client_interface;
        struct weston_geometry next_geometry;
        bool has_next_geometry;
+       bool committed;
        bool added;
        enum weston_desktop_xwayland_surface_state state;
 };
@@ -99,6 +100,14 @@ weston_desktop_xwayland_surface_change_state(struct 
weston_desktop_xwayland_surf
                        weston_desktop_api_surface_added(surface->desktop,
                                                         surface->surface);
                        surface->added = true;
+                       if (surface->state == NONE && surface->committed)
+                               /* We had a race, and wl_surface.commit() was
+                                * faster, just fake a commit to map the
+                                * surface */
+                               weston_desktop_api_committed(surface->desktop,
+                                                            surface->surface,
+                                                            0, 0);
+
                } else if (surface->added) {
                        weston_desktop_api_surface_removed(surface->desktop,
                                                           surface->surface);
@@ -134,6 +143,7 @@ weston_desktop_xwayland_surface_committed(struct 
weston_desktop_surface *dsurfac
        struct weston_geometry oldgeom;
 
        assert(dsurface == surface->surface);
+       surface->committed = true;
 
 #ifdef WM_DEBUG
        weston_log("%s: xwayland surface %p\n", __func__, surface);
-- 
2.12.2

_______________________________________________
wayland-devel mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to