CNA-PLAT-013: Wayland gives no desktop pointer position, and browsers hide gamepads until a button press and gate pointer lock on a user gesture
Evidence basis: source-verified at the pinned commit; tests exist (not executed for this page). Claims on this page were checked by reading the CNA source at commit 009d40f5; unless a sentence says otherwise, nothing here was built or executed. Nothing on this page was executed unless the Evidence section says so.
On native Wayland the global-pointer functions are unsupported; on the web a gamepad appears only after the player presses a button on it, and relative mouse mode engages only after a click.
- Identifier
CNA-PLAT-013- Category
- Platform limitation
- Subsystem
- Platforms
- Status
- Open
- Verified against
- CNA
009d40f5(009d40f5dd085c4e674d3479675fac84b12b3e0a) - Evidence basis
- Source-verified: read at TARGET, not executed
- Tests touching this area
- Yes: see Current tests
- Affected contract
- Mouse::GetGlobalPositionEXT / WarpGlobalEXT / SetCaptureEXT on Wayland; GamePad connection and Mouse relative mode in Emscripten builds
Expected behaviour
Desktop-style pointer queries and immediate gamepad detection.
Actual behaviour at TARGET
WaylandMouse.cpp refuses global position, warping and capture because Wayland clients “are not given desktop coordinates”. platform-input-notes.md records that the browser Gamepad API shows controllers only “until the user presses a button on them” and that pointer lock “requires a user gesture” and can be exited by the browser.
Source locations
modules/platform/src/Wayland/WaylandMouse.cpp— SetCapture, TryGetGlobalPosition, SetGlobalPosition: unsupporteddocs/platform-input-notes.md— web: pointer lock, gamepad privacy gate, reserved key combinations
Evidence
Checked by reading at 009d40f5; not executed. How the Wayland refusal reaches games is CNA-BUG-135.
Focused reproduction
No focused reproduction is known. Nothing has been invented here; the evidence above is what exists.
Current tests
None for the host behaviour itself.
Regression test
None; these are host policies.
Blast radius
Wayland sessions using the native backend; games shipped to browsers.
Workaround
On Wayland use the X11 or SDL3 platform when global pointer access is required; on the web prompt for a click before enabling relative mode and before expecting gamepads.
Related pages
The same subject is explained at several altitudes. These are the neighbouring pages at each one.
- User guide
- Input: implementation status
- Deep dives
- Input model: platform boundaries
- Known issues
- Platform limitation index