]> git.mdlowis.com Git - proto/labwc.git/commitdiff
xwayland.c: fix position bug
authorJohan Malm <jgm323@gmail.com>
Mon, 4 Jul 2022 17:25:52 +0000 (18:25 +0100)
committerJohan Malm <jgm323@gmail.com>
Mon, 4 Jul 2022 17:25:52 +0000 (18:25 +0100)
Set node position in the configure/set_geometry handlers when moving a
window in response to a client request.

Steps to reproduce weird positioning fixed by this patch:

1. Start leafpad
2. Open Help->About
3. Move the dialog
4. Close the dialog
5. Open it again
6. Drag it and observe a jump in position

There is also an xwayland PyQt5 script in PR #428 which demonstrates
jumpy position.

src/xwayland-unmanaged.c
src/xwayland.c

index fae8d0ba8f4d438cd289ef08f272c1f9e2a696af..4c68223bc9821a4ce8d2d8b23387f044e9d84cb3 100644 (file)
@@ -35,6 +35,8 @@ unmanaged_handle_set_geometry(struct wl_listener *listener, void *data)
                wlr_log(WLR_DEBUG, "xwayland-unmanaged surface has moved");
                unmanaged->lx = xsurface->x;
                unmanaged->ly = xsurface->y;
+               wlr_scene_node_set_position(unmanaged->node,
+                       unmanaged->lx, unmanaged->ly);
        }
 }
 
index 37cf4c0ec96747bc25923b49ceb7115afc9adda7..9c5164337df894ab880dd5745b28968b2dbae06d 100644 (file)
@@ -151,6 +151,7 @@ handle_request_configure(struct wl_listener *listener, void *data)
        view->pending_move_resize.width = width;
        view->pending_move_resize.height = height;
 
+       wlr_scene_node_set_position(&view->scene_tree->node, event->x, event->y);
        wlr_xwayland_surface_configure(view->xwayland_surface,
                event->x, event->y, width, height);
 }