Skip to content

Honor touch-action for retained pointer gestures #799

Description

@wieslawsoltes

Parent CSS epic: #235
Input owner: #100
Performance owner: #243

Proven gap

Unchanged Code OSS 645f29cc3176500b4b5762ba887cf2a7f0ffdf2c contains 52 touch-action declarations across 27 CSS files. Current WebScene c9a28121 has no property identity, CSSOM, computed policy, or touch-pan admission. The current host input ABI also does not distinguish mouse, touch, and pen, so applying the policy to every generic pointer would incorrectly suppress desktop mouse behavior.

Required implementation

  1. Extend the host input boundary with backward-compatible pointer device identity and stable pointer IDs; AppScene must populate touch/pen values on Cocoa, Win32, and Linux where available.
  2. Add generated native/managed touch-action identity and browser-shaped CSSOM for auto, none, manipulation, pan-x, pan-y, and the product-used combinations.
  3. Resolve the effective policy across the hit target's ancestor chain at gesture start and keep it stable for that gesture.
  4. Admit/suppress retained panning per axis without affecting mouse selection, scrollbar drags, script pointer events, capture, or cancel semantics.
  5. Keep policy state compact and interaction-only: no layout, scene node, timer, or idle frame demand.

Gates

  • WPT-derived CSSOM and pointer-action contracts for mouse/touch/pen identity, axis policy, capture, cancellation, nested scrollers, and mutation-after-start;
  • AppScene platform input ABI contracts on macOS, Windows, and Linux;
  • 4,096-node mutation and 1,000-gesture bounded-work/lifecycle gates;
  • unchanged Code OSS tabs, editors, split views, sliders, terminal, Chat, and mobile/session surfaces;
  • exact package accessibility, visual, performance, memory, and no-browser acceptance.

Current status — 20 September 2026

Merged by PR #806 at WebScene 0f3282e7529924ec24fe42cf5581cefd9e9c2b5a; issue closed. AppScene producer PR #299 is merged at 1fb1c19613ed08fb99ae7a4288eba84f3bb52a89. Generated metadata CI passed; broad queued jobs were canceled after merge under the agreed fast policy. Authored build/test/WPT/native/visual/package/hardware/memory/lifecycle/performance evidence remains deferred in the parent epics.

Metadata

Metadata

Assignees

No one assigned

    Labels

    vscode-oss/plannedPlanned for the AppScene/WebScene VS Code OSS integration

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions