AwaitPointerEventScope
@RestrictsSuspension
@JvmDefaultWithCompatibility
interface AwaitPointerEventScope : Density
Receiver scope for awaiting pointer events in a call to
PointerInputScope.awaitPointerEventScope.
This is a restricted suspension scope. Code in this scope is always called un-dispatched and may
only suspend for calls to awaitPointerEvent. These functions resume synchronously and the
caller may mutate the result before the next await call to affect the next stage of the input
processing pipeline.
Properties
val size: IntSize
The measured size of the pointer input region. Input events will be reported with a coordinate space of (0, 0) to (size.width, size,height) as the input region, with (0, 0) indicating the upper left corner.
val extendedTouchPadding: Size
val currentEvent: PointerEvent
The PointerEvent from the most recent touch event.
val viewConfiguration: ViewConfiguration
The ViewConfiguration used to tune gesture detectors.
Functions
suspend fun awaitPointerEvent(pass: PointerEventPass = PointerEventPass.Main): PointerEvent
Suspend until a PointerEvent is reported to the specified input pass. pass defaults to
PointerEventPass.Main.
awaitPointerEvent resumes synchronously in the restricted suspension scope. This means
that callers can react immediately to input after awaitPointerEvent returns and affect both
the current frame and the next handler or phase of the input processing pipeline. Callers
should mutate the returned PointerEvent before awaiting another event to consume aspects of
the event before the next stage of input processing runs.
suspend fun <T> withTimeoutOrNull(
timeMillis: Long,
block: suspend AwaitPointerEventScope.() -> T,
): T?
Runs block and returns the result of block or null if timeMillis has passed before
timeMillis.
suspend fun <T> withTimeout(
timeMillis: Long,
block: suspend AwaitPointerEventScope.() -> T,
): T
Runs block and returns its results. An PointerEventTimeoutCancellationException is thrown
if timeMillis has passed before block completes.
