Skip to content

Pick up the gpui fork's Wayland tablet and touchpad-pinch work - #39

Merged
IAmJSD merged 2 commits into
mainfrom
t3code/169c2fdd
Aug 25, 2026
Merged

Pick up the gpui fork's Wayland tablet and touchpad-pinch work#39
IAmJSD merged 2 commits into
mainfrom
t3code/169c2fdd

Conversation

@IAmJSD

@IAmJSD IAmJSD commented Aug 25, 2026

Copy link
Copy Markdown
Member

Bumps the pinned gpui rev to 84bdb01, which closes both of the fork's outstanding backend gaps, and brings the README in line with it. No other schist code changes.

What the fork gained

Wayland stylus pressure, via zwp_tablet_v2. Wayland was the last backend reporting a constant 1.0, so pressure-sensitive painting silently did nothing there. It isn't a matter of reading an extra axis the way X11's is: tablet input on Wayland is a protocol of its own, and binding it makes the compositor stop emulating pointer events for the tool. The backend now synthesises the whole mouse event stream from zwp_tablet_tool_v2 — tip as the left button, barrel buttons as right/middle, proximity as enter/exit — with pressure on the three events that carry it. A hovering stylus reports a true zero, matching X11; a tool with no pressure axis reports 1.0, matching a mouse.

Windows precision-touchpad pinch, via Direct Manipulation — opt-in, off by default. WM_GESTURE only ever covered touchscreens. DM_POINTERHITTEST arrives before Windows has classified the gesture, so claiming the contact to get a pinch also claims two-finger pans and suppresses the WM_MOUSEWHEEL they used to produce; the fork consequently synthesises the scrolling too. That is a replacement for Windows touchpad scrolling written against a cross-compile, on a platform none of us can run, so it stays behind GPUI_ENABLE_DIRECT_MANIPULATION until someone has driven it on real hardware. Unset, the window keeps the Ctrl+scroll fallback and behaves exactly as it does today.

Nothing in this repo sets that variable, so on this branch the Windows half is inert.

README

"Mouse and touchpad" now says pressure works on all four backends, and says why the Windows touchpad pinch gap is a decision rather than an omission. The "not there yet" entry for Wayland pressure is replaced rather than deleted — the honest caveat is no longer "Wayland is missing" but "all four paths were written against platform documentation and none has met a physical stylus".

Verification

  • cargo check --workspace clean against the new rev.
  • In the fork: cargo test --features test-support --test pinch (5 pass), new wayland/client.rs unit tests (2 pass), cargo check --target x86_64-pc-windows-gnu clean, cargo fmt --check clean, and the hello_world example renders correctly under Xvfb.
  • Wayland and Windows have no runtime path on this box; both backends are compile-reviewed only, as the fork's UPSTREAM.md records.

🤖 Generated with Claude Code

IAmJSD added 2 commits August 25, 2026 13:09
Wayland now reports real stylus pressure via zwp_tablet_v2 instead of a
constant 1.0, so pressure-sensitive painting works on the third of the four
backends. Windows precision-touchpad pinch is in the same bump but is opt-in
behind GPUI_ENABLE_DIRECT_MANIPULATION and off here.
The "not there yet" entry for Wayland pressure is out of date as of the
gpui rev bump. What replaces it is not "done" but a different caveat: all
four backends feed pressure now, and not one of them has been driven by an
actual stylus.

Also spells out why Windows precision-touchpad pinch stays a gap. It reads
as an omission otherwise, when it is a decision -- Direct Manipulation
cannot be claimed for pinches without claiming two-finger pans and the
scrolling that goes with them.
@IAmJSD
IAmJSD merged commit 57f1439 into main Aug 25, 2026
3 checks passed
@IAmJSD
IAmJSD deleted the t3code/169c2fdd branch August 25, 2026 13:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant