From 276a70a84fed5be229c12546df1ac393158a4ec9 Mon Sep 17 00:00:00 2001 From: Berke Güzel Date: Tue, 13 Oct 2026 16:23:07 +0300 Subject: Implement relative pointer mode on Wayland yasl_surface_set_pointer_mode(YASL_POINTER_RELATIVE) now takes a persistent zwp_locked_pointer_v1 on the surface and hides its cursor. While the compositor keeps the lock engaged, zwp_relative_pointer_v1 motion is pushed as POINTER_MOTION with pos frozen and delta in device pixels. When the lock disengages, as on focus loss, motion is absolute again with a delta derived by the input queue. The lock follows the pointer's seat: it moves to another seat when its seat loses the pointer, and is released on NORMAL and on surface destruction. Compositors without both protocols return false. Co-Authored-By: Claude Opus 5.5 --- tests/meson.build | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'tests/meson.build') diff --git a/tests/meson.build b/tests/meson.build index 951b30e..980f5db 100644 --- a/tests/meson.build +++ b/tests/meson.build @@ -189,6 +189,11 @@ if has_wayland include_directories: inc, dependencies: yasl_dep, ) test('cursor-wayland', cursor_wayland_test) + relative_pointer_test = executable('yasl-relative-pointer-wayland-test', + 'wayland/test_relative_pointer.c', + include_directories: inc, dependencies: yasl_dep, + ) + test('relative-pointer-wayland', relative_pointer_test) endif benchmark_exe = executable( -- cgit v1.2.3