Wayland compositor (wlroots)
git clone https://git.lucas.co/cce-compositor.git
cursor: fix down mode motion event coords
These are required to be surface local and we need to take the output's
layout coords into account as the cursor itself is in layout coords.
river/Cursor.zig | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/river/Cursor.zig b/river/Cursor.zig
index 7e8d427..0cc2b9a 100644
--- a/river/Cursor.zig
+++ b/river/Cursor.zig
@@ -471,10 +471,12 @@ fn processMotion(self: *Self, device: *wlr.InputDevice, time: u32, delta_x: f64,
},
.down => |view| {
self.wlr_cursor.move(device, delta_x, delta_y);
+ // This takes surface-local coordinates
+ const output_box = view.output.root.output_layout.getBox(view.output.wlr_output).?;
self.seat.wlr_seat.pointerNotifyMotion(
time,
- self.wlr_cursor.x - @intToFloat(f64, view.current.box.x - view.surface_box.x),
- self.wlr_cursor.y - @intToFloat(f64, view.current.box.y - view.surface_box.y),
+ self.wlr_cursor.x - @intToFloat(f64, output_box.x + view.current.box.x - view.surface_box.x),
+ self.wlr_cursor.y - @intToFloat(f64, output_box.y + view.current.box.y - view.surface_box.y),
);
},
.move => |view| {