1.6 KiB
1.6 KiB
P10.0R1 Web Touch Activation Contract
Revision:
p10.0r1-web-touch-contract-r1Status:FROZEN
Input Authority
P10.0 owns raw InputEventScreenTouch and InputEventScreenDrag inside its
runtime controller. ScreenTouch activation must not depend on the engine or
browser synthesizing a MouseButton event.
For one touch index:
- Press records the topmost visible enabled P10.0 Button under the point.
- Release over the same live Button emits that Button's
pressedsignal once. - Release outside, disabled state, a different Button or canceled ownership emits nothing.
- A line drag above the declared slop commits only the drag and emits no Button press.
- The controller marks owned touch events handled so mouse emulation cannot duplicate the command. Real MouseButton input remains owned by Godot Button.
Settings overlay z-order must win over hidden underlying controls. No handler may invoke a gameplay method directly; it must use the same Button signal bound by the visible UI.
Persistence Boundary
New Expedition transitions to the four-Recruit draft even when persistence is enabled. The saved draft must reload with the same four offers. A save failure must be visible as a named status and must not leave the Title looking inert.
Evidence
- Raw-touch test with mouse-from-touch emulation off.
- Existing parsed-touch test with emulation on to prove no duplicate action.
- MouseButton front-door probe.
- Persistence-on first action and reload.
- Focused P10.0/P9.10 regressions, normal landscape rendering, fresh Web export and replacement Gallery transport.
Human phone touch acceptance remains Owner-only.