class TouchSourceV2

Defined at line 195 of file fidling/gen/sdk/fidl/fuchsia.ui.pointer/fuchsia.ui.pointer/cpp/fidl/fuchsia.ui.pointer/cpp/markers.h

A push-based reader protocol for a client to receive touch events.

Does not support cooperative gesture disambiguation (always-consume model).

If Scenic has a mix of V1 and V2 clients contesting the same touch

interaction in the view tree, Scenic's gesture arena will implicitly treat

the V2 client as if it immediately responded `YES` (claim ownership) to all

pointer samples. Gesture ownership is then resolved using standard priority

rules against other V1 clients' explicit responses (like `YES`, `MAYBE`, or

`HOLD`).

Clients requiring cooperative gesture disambiguation or augmentation (such

as the accessibility subsystem using `LocalHit`) must continue using the

pull-based [`TouchSource`] protocol instead.

Flow control and acknowledgment rules:

- The server will not push more than

`TOUCH_SOURCE_V2_MAX_UNACKNOWLEDGED_EVENTS` (or a product-configured

maximum) events without receiving an acknowledgment from the client.

The server (Scenic) will throttle event delivery when unacknowledged

events in flight reach this limit.

- Clients should send acknowledgments periodically (e.g. before reaching

the limit, such as within 20 remaining credits) to avoid being throttled.

- No head-of-line blocking: Because channels and credit limits are

independent per-view, a slow client that fails to acknowledge terminal

events only blocks its own channel. Scenic can immediately start pushing

events to other views on their own channels.

Like [`TouchSource`], Scenic only dispatches touch events to the

`TouchSourceV2` channel if the touch coordinate successfully intersects one

of the view's active hit regions (determined via Scenic's global hit

testing). If the hit test fails or targets a different view, no touch events

are routed to this client's `TouchSourceV2` channel, preserving the security

containment boundaries of the Fuchsia UI system.

The position of a touch event is defined in the context of a viewport,

situated in the view, identical to [`TouchSource`].

Public Members

static Openness kOpenness

Records