Wayland: no touch input (wl_touch is never bound) #159
Labels
No labels
claude:blocked
claude:done
claude:failed
claude:in-progress
claude:ready
bug
duplicate
enhancement
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
Catcrafts/Crafter.Graphics#159
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
The Wayland backend has no touch input.
Device::seat_handle_capabilitiesbinds only the pointer and the keyboard (implementations/Crafter.Graphics-Device.cpp:499-509at6aa0338), and there is nowl_touchlistener anywhere in the tree. On a touch-only session (phosh/phoc on a phone) a window renders but, as far as the code goes, receives nothing when the screen is touched.Found by reading the code while bringing the UI path up on a Fairphone 6 (postmarketOS, phoc,
wl_seatv9). I did not test touches on the device myself.Suggested fix
Two levels, the second being a design decision:
WL_SEAT_CAPABILITY_TOUCHand map the first touch point onto the existing mouse path:down→ move + left press,motion→ move,up→ left release. Coordinates need the same surface-local × scale conversion the pointer handlers use. No new public API.Window(touch id, position, phase) for multi-touch and gestures, with the mouse emulation above as the default for applications that do not subscribe.