Skip to content

Implement per-pointer gesture cancellation - #11

Merged
nicodes merged 1 commit into
mainfrom
a04-behavior
Sep 13, 2026
Merged

nicodes merged 1 commit into
mainfrom
a04-behavior

Conversation

@nicodes

@nicodes nicodes commented Sep 12, 2026 •

Copy link
Copy Markdown
Member

Self-verification evidence (Team No Review)

  • Issue / criteria: fieldsofrevik#144 — D-04 per-pointer ownership, GUI acceptance, cancellation/focus loss, pinch ordering, startup double tap, synthesis, docs/arity, native/web package behavior.
  • Correction (fieldsofrevik#144): after native bottom-layer merge and trivial replay, source is aviorstudio/gd-gesture, a04-behavior, exact head 590a1ffb1b01785bbca1eabc8b88697d5f67b187 on main. The earlier pre-merge head was superseded.
  • Decision consumed: approved D-04. Caller selected absolute pinch scale on 2026-09-12: current distance / distance when the two-pointer pinch began. Backward compatibility waived.
  • Criterion evidence: PASS — independent simultaneous drags retain pointer ownership; moved touch is stored before absolute pinch calculation (2.0 then 3.0 controls); first 1ms tap is not double; distant/late taps are not double; timely nearby taps are; pinch participants do not also tap.
  • Criterion evidence: PASS — screen cancel, focus loss, pointer removal and teardown emit cancellation; later release cannot tap/swipe and delayed long press remains canceled. GUI-accepted input is ignored. Synthetic mouse (device=-1) is ignored while native mouse remains active.
  • Docs/API: PASS — README correction names originating issue, uses pointer_dragged/pointer_canceled, and compiles signal callbacks at actual arity (readme_signal_contract_test, 7 reachable assertions).
  • Versions/commands: Godot 4.7.2.stable.official.ed1daf0bf; Python 3.13; Linux; Firefox via playwright-cli 0.1.18; GODOT_BIN=... ./tests/test.sh; deterministic two-build comparison; GODOT_BIN=... ./tests/package_lifecycle.sh; Web export; python3 -m http.server 8894; playwright-cli open/run-code/screenshot/console.
  • Reachability: runner controls 12/12 PASS; Godot suites emitted exact single sentinels with assertions 2, 16, 6, and 7.
  • Artifact identity: deterministic exact-head ZIP SHA-256 c124429c242a906ba5b4e7ebde9fb7b63b296c4a4063b3d571e8b5cd97325b76; installed-tree SHA-256 ebe05cd95433ac6274c7ff6f1dece9541587c93ffff1b81d1863b6252ea0c4b6.
  • Browser: packaged Web export loaded title gd-gesture web playground, canvas 1280x720, click emitted tap • event 1 • {position:(640,360), index:0}, and console had 0 errors. Firefox reported only the upstream WebAssembly deprecated-try warning.

Packaged Godot 4.7.2 web tap evidence

  • Exact-head CI: PASS — run 34740314592 at 590a1ffb1b01785bbca1eabc8b88697d5f67b187 after the bottom-layer merge/replay.
  • Untested/residual: physical mobile multi-touch and non-Linux native platforms are outside the approved D-14 runner matrix. Release/GDAM publication and clean registry install are post-merge and block issue completion.

@nicodes
nicodes added this pull request to stack #12 September 13, 2026 05:26
Base automatically changed from a04-gate to main September 13, 2026 05:26
@nicodes
nicodes merged commit 6725178 into main Sep 13, 2026
3 checks passed
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