From 0bbe624bfb8a999151b02956985aaa37b3cf5817 Mon Sep 17 00:00:00 2001 From: Pekka Paalanen Date: Wed, 21 Dec 2016 13:41:34 +0200 Subject: [PATCH] xwm: explain the read_properties() in xserver_map_shell_surface() To me it was not obvious that this call is necessary, so provide some rationale. Signed-off-by: Pekka Paalanen Reviewed-by: Daniel Stone --- xwayland/window-manager.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/xwayland/window-manager.c b/xwayland/window-manager.c index 37c8603f1..d40d56eaf 100644 --- a/xwayland/window-manager.c +++ b/xwayland/window-manager.c @@ -2659,6 +2659,15 @@ xserver_map_shell_surface(struct weston_wm_window *window, wm->server->compositor->xwayland_interface; struct weston_wm_window *parent; + /* This should be necessary only for override-redirected windows, + * because otherwise MapRequest handler would have already updated + * the properties. However, if X11 clients set properties after + * sending MapWindow, here we can still process them. The decorations + * have already been drawn once with the old property values, so if the + * app changes something affecting decor after MapWindow, we glitch. + * We only hit xserver_map_shell_surface() once per MapWindow and + * wl_surface, so better ensure we get the window type right. + */ weston_wm_window_read_properties(window); /* A weston_wm_window may have many different surfaces assigned