The concept of a persistent accumulated surface offset is wrong from a protocol point-of-view. wl_surface.offset is tied to a commit, its interpretation depends on the surface role. For example, with the following sequence: wl_surface@1.offset(1, 1) wl_surface@1.commit() wl_pointer@2.set_cursor(wl_surface@1, 42, 42) The final cursor hotspot is (42, 42): the commit which happened before the set_cursor request has no impact on the hotspot computation. The wlr_output_cursor logic already uses wlr_surface.current.{dx,dy}. wlr_scene's drag icon doesn't, update it accordingly. |
||
---|---|---|
.. | ||
drag_icon.c | ||
layer_shell_v1.c | ||
output_layout.c | ||
subsurface_tree.c | ||
surface.c | ||
wlr_scene.c | ||
xdg_shell.c |