Some windows might get a create_notify event without the
override redirect flag set and then get a confiure_notify
event before map_request is received. This means that when
weston_wm_window_get_child_position is called in response
to configure_notify, the wrong offsets are computed resulting
in wrong input offsets for some clients like steam.
---
 xwayland/window-manager.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/xwayland/window-manager.c b/xwayland/window-manager.c
index c307e19..2307f1a 100644
--- a/xwayland/window-manager.c
+++ b/xwayland/window-manager.c
@@ -711,10 +711,12 @@ weston_wm_handle_configure_request(struct weston_wm *wm, 
xcb_generic_event_t *ev
        if (configure_request->value_mask & XCB_CONFIG_WINDOW_HEIGHT)
                window->height = configure_request->height;
 
-       if (window->frame)
+       if (window->frame) {
                frame_resize_inside(window->frame, window->width, 
window->height);
+               weston_wm_window_get_child_position(window, &x, &y);
+       } else
+               x = y = 0;
 
-       weston_wm_window_get_child_position(window, &x, &y);
        values[i++] = x;
        values[i++] = y;
        values[i++] = window->width;
-- 
2.7.4

_______________________________________________
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to