mirror of
https://github.com/labwc/labwc.git
synced 2025-11-03 09:01:51 -05:00
(Partly) fix handling of client-initiated configure requests
- Add missing call to wlr_scene_node_set_position() in unmanaged_handle_commit() -- this fixes moving unmanaged XWayland windows. - Update view->pending_move_resize when we receive a configure request for a managed XWayland surface -- this fixes moving managed but undecorated XWayland windows. - Also update view->pending_move_resize when we move a surface while a configure request is already pending -- this fixes a discrepancy between displayed and actual position for XWayland windows that try to set their own initial position, but then get overridden by labwc's positioning. Moving undecorated XWayland windows is still really glitchy -- it appears that an XWayland window gets sent incorrect mouse motion coordinates when there is a pending configure request moving the window itself.
This commit is contained in:
parent
3c345201cd
commit
80792d446f
3 changed files with 20 additions and 2 deletions
|
|
@ -20,6 +20,8 @@ unmanaged_handle_commit(struct wl_listener *listener, void *data)
|
|||
struct wlr_xwayland_surface *xsurface = unmanaged->xwayland_surface;
|
||||
unmanaged->lx = xsurface->x;
|
||||
unmanaged->ly = xsurface->y;
|
||||
wlr_scene_node_set_position(unmanaged->node,
|
||||
unmanaged->lx, unmanaged->ly);
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
@ -59,10 +61,11 @@ unmanaged_handle_map(struct wl_listener *listener, void *data)
|
|||
}
|
||||
|
||||
/* node will be destroyed automatically once surface is destroyed */
|
||||
struct wlr_scene_node *node = &wlr_scene_surface_create(
|
||||
unmanaged->node = &wlr_scene_surface_create(
|
||||
unmanaged->server->unmanaged_tree,
|
||||
xsurface->surface)->buffer->node;
|
||||
wlr_scene_node_set_position(node, unmanaged->lx, unmanaged->ly);
|
||||
wlr_scene_node_set_position(unmanaged->node,
|
||||
unmanaged->lx, unmanaged->ly);
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue