windowmaker-wl/tests
Levi Neely 73cdf7a6b3 wayland: Phase 22 — interactive move/resize grab
Add a compositor-side pointer grab so clients can interactively move and
resize their windows.  When an XDG toplevel sends request_move or
request_resize, the compositor records the current pointer position and
window geometry, then routes all subsequent motion events directly to
wl_grab_apply_motion() instead of the normal pointer-focus path.

- wl_grab_begin_move / wl_grab_begin_resize: snapshot grab origin,
  clear seat pointer focus so the client stops receiving motion events.
- wl_grab_apply_motion: on every motion event, compute dx/dy from the
  grab origin and reposition (MOVE) or stretch (RESIZE) the scene node.
  Resize honours all WL_SHELL_SURFACE_RESIZE_* edge combinations.
  Minimum window size clamped to 32×32 px.  XWayland windows use
  wlr_xwayland_surface_configure; XDG toplevels use set_size + schedule_configure.
- wl_grab_end: clears grab state; any button release while a grab is
  active ends it and resumes normal pointer-focus delivery.
- grab_type, grab_view, grab_start_{ptr,win}_{x,y,w,h}, grab_resize_edges
  added to wl_compositor_state.

Smoke test: build-only check added (no existing test client emits
request_move); all 22/22 checks continue to pass.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-30 16:57:38 +02:00
..
Makefile.am Wayland backend abstraction: WMBackend vtable (Phases 0–30) 2026-03-27 19:20:00 +01:00
test_geom.c Wayland backend abstraction: WMBackend vtable (Phases 0–30) 2026-03-27 19:20:00 +01:00
test_x11_event.c Wayland backend abstraction: WMBackend vtable (Phases 0–30) 2026-03-27 19:20:00 +01:00
wl-smoke-test.sh wayland: Phase 22 — interactive move/resize grab 2026-03-30 16:57:38 +02:00
x11-smoke-test.sh wayland: add WMAKER_USE_WAYLAND backend selector and split smoke tests 2026-03-27 22:29:27 +01:00