# PointerInputChange

Artifact: [androidx.compose.ui:ui](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/input/pointer/PointerEvent.kt+class:androidx.compose.ui.input.pointer.PointerInputChange) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0) Common/AllAndroid/JVM
- Cmn

  ```
  class PointerInputChange
  ```

*** ** * ** ***

Describes a change that has occurred for a particular pointer, as well as how much of the change has been consumed (meaning, used by a node in the UI).

The `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange#position()` represents the position of the pointer relative to the element that this `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange` is being dispatched to.

Note 1: A `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerEvent`'s `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerEventType` is the cause of an event and the associated `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange`'s properties reflecting that. Most of those are exclusive, in other words, a Press/Release `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerEventType` will not cause a scrollDelta change and a Scroll `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerEventType` will not cause a pressed or previousPressed change. However, either a a Scroll or a Press/Release may contain a position change in its `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange`s. (You can imagine one finger moving while another is lifted up.)

Examples of `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerEventType` and the associated `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange` property changes:

- Press -\> press will change (position may change) but scroll delta will not.

- Release -\> press will change (position may change) but scroll delta will not.

- Move -\> position will change but press and scroll delta will not.

- Scroll -\> scroll delta will change (position may change) but press will not.

Note 2: The `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange#position()` values can be outside the actual bounds of the element itself meaning the numbers can be negative or larger than the element bounds.

The `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange#(androidx.compose.ui.input.pointer.PointerId,kotlin.Long,androidx.compose.ui.geometry.Offset,kotlin.Boolean,kotlin.Float,kotlin.Long,androidx.compose.ui.geometry.Offset,kotlin.Boolean,kotlin.Boolean,androidx.compose.ui.input.pointer.PointerType,androidx.compose.ui.geometry.Offset,kotlin.Float,androidx.compose.ui.geometry.Offset)` represents the position of the pointer offset to the current position of the pointer relative to the screen.

This means that `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange#position()` and `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange#(androidx.compose.ui.input.pointer.PointerId,kotlin.Long,androidx.compose.ui.geometry.Offset,kotlin.Boolean,kotlin.Float,kotlin.Long,androidx.compose.ui.geometry.Offset,kotlin.Boolean,kotlin.Boolean,androidx.compose.ui.input.pointer.PointerType,androidx.compose.ui.geometry.Offset,kotlin.Float,androidx.compose.ui.geometry.Offset)` can always be used to understand how much a pointer has moved relative to an element, even if that element is moving along with the changes to the pointer. For example, if a pointer touches a 1x1 pixel box in the middle, `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange#position()` will report a position of (0, 0) when dispatched to it. If the next event moves x position 5 pixels, `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange#position()` will report (5, 0) and `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange#(androidx.compose.ui.input.pointer.PointerId,kotlin.Long,androidx.compose.ui.geometry.Offset,kotlin.Boolean,kotlin.Float,kotlin.Long,androidx.compose.ui.geometry.Offset,kotlin.Boolean,kotlin.Boolean,androidx.compose.ui.input.pointer.PointerType,androidx.compose.ui.geometry.Offset,kotlin.Float,androidx.compose.ui.geometry.Offset)` will report (0, 0). If the box moves all 5 pixels, and the next event represents the pointer moving along the x axis for 5 more pixels, `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange#position()` will again report (5, 0) and `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange#(androidx.compose.ui.input.pointer.PointerId,kotlin.Long,androidx.compose.ui.geometry.Offset,kotlin.Boolean,kotlin.Float,kotlin.Long,androidx.compose.ui.geometry.Offset,kotlin.Boolean,kotlin.Boolean,androidx.compose.ui.input.pointer.PointerType,androidx.compose.ui.geometry.Offset,kotlin.Float,androidx.compose.ui.geometry.Offset)` will report (0, 0).

## Summary

| ### Public constructors |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange#PointerInputChange(androidx.compose.ui.input.pointer.PointerId,kotlin.Long,androidx.compose.ui.geometry.Offset,kotlin.Boolean,kotlin.Long,androidx.compose.ui.geometry.Offset,kotlin.Boolean,kotlin.Boolean,androidx.compose.ui.input.pointer.PointerType,androidx.compose.ui.geometry.Offset,kotlin.Float,androidx.compose.ui.geometry.Offset)( id: https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerId, uptimeMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html, position: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset, pressed: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html, previousUptimeMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html, previousPosition: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset, previousPressed: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html, isInitiallyConsumed: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html, type: https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerType, scrollDelta: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset, scaleFactor: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html, panOffset: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset )` | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange#PointerInputChange(androidx.compose.ui.input.pointer.PointerId,kotlin.Long,androidx.compose.ui.geometry.Offset,kotlin.Boolean,kotlin.Float,kotlin.Long,androidx.compose.ui.geometry.Offset,kotlin.Boolean,kotlin.Boolean,androidx.compose.ui.input.pointer.PointerType,androidx.compose.ui.geometry.Offset,kotlin.Float,androidx.compose.ui.geometry.Offset)( id: https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerId, uptimeMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html, position: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset, pressed: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html, pressure: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html, previousUptimeMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html, previousPosition: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset, previousPressed: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html, isInitiallyConsumed: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html, type: https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerType, scrollDelta: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset, scaleFactor: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html, panOffset: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset )` | Cmn |

| ### Public functions |
|---|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange#consume()()` Consume change event, claiming all the corresponding change info to the caller. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange#copy(androidx.compose.ui.input.pointer.PointerId,kotlin.Long,androidx.compose.ui.geometry.Offset,kotlin.Boolean,kotlin.Long,androidx.compose.ui.geometry.Offset,kotlin.Boolean,androidx.compose.ui.input.pointer.PointerType,androidx.compose.ui.geometry.Offset)( id: https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerId, currentTime: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html, currentPosition: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset, currentPressed: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html, previousTime: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html, previousPosition: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset, previousPressed: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html, type: https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerType, scrollDelta: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset )` Make a shallow copy of the `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange` | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange#copy(androidx.compose.ui.input.pointer.PointerId,kotlin.Long,androidx.compose.ui.geometry.Offset,kotlin.Boolean,kotlin.Float,kotlin.Long,androidx.compose.ui.geometry.Offset,kotlin.Boolean,androidx.compose.ui.input.pointer.PointerType,androidx.compose.ui.geometry.Offset)( id: https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerId, currentTime: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html, currentPosition: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset, currentPressed: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html, pressure: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html, previousTime: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html, previousPosition: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset, previousPressed: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html, type: https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerType, scrollDelta: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset )` Make a shallow copy of the `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange` | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange` | `[copy](https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange#copy(androidx.compose.ui.input.pointer.PointerId,kotlin.Long,androidx.compose.ui.geometry.Offset,kotlin.Boolean,kotlin.Long,androidx.compose.ui.geometry.Offset,kotlin.Boolean,androidx.compose.ui.input.pointer.ConsumedData,androidx.compose.ui.input.pointer.PointerType,androidx.compose.ui.geometry.Offset))( id: https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerId, currentTime: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html, currentPosition: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset, currentPressed: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html, previousTime: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html, previousPosition: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset, previousPressed: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html, consumed: https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/ConsumedData, type: https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerType, scrollDelta: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset )` **This function is deprecated.** Partial consumption has been deprecated. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange` | `@https://developer.android.com/reference/kotlin/androidx/compose/ui/ExperimentalComposeUiApi https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange#copy(androidx.compose.ui.input.pointer.PointerId,kotlin.Long,androidx.compose.ui.geometry.Offset,kotlin.Boolean,kotlin.Long,androidx.compose.ui.geometry.Offset,kotlin.Boolean,androidx.compose.ui.input.pointer.PointerType,kotlin.collections.List,androidx.compose.ui.geometry.Offset)( id: https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerId, currentTime: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html, currentPosition: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset, currentPressed: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html, previousTime: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html, previousPosition: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset, previousPressed: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html, type: https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerType, historical: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html<https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/HistoricalChange>, scrollDelta: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset )` Make a shallow copy of the `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange` | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange#copy(androidx.compose.ui.input.pointer.PointerId,kotlin.Long,androidx.compose.ui.geometry.Offset,kotlin.Boolean,kotlin.Float,kotlin.Long,androidx.compose.ui.geometry.Offset,kotlin.Boolean,androidx.compose.ui.input.pointer.PointerType,kotlin.collections.List,androidx.compose.ui.geometry.Offset)( id: https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerId, currentTime: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html, currentPosition: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset, currentPressed: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html, pressure: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html, previousTime: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html, previousPosition: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset, previousPressed: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html, type: https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerType, historical: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html<https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/HistoricalChange>, scrollDelta: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset )` Make a shallow copy of the `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange` | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange#copy(androidx.compose.ui.input.pointer.PointerId,kotlin.Long,androidx.compose.ui.geometry.Offset,kotlin.Boolean,kotlin.Float,kotlin.Long,androidx.compose.ui.geometry.Offset,kotlin.Boolean,androidx.compose.ui.input.pointer.PointerType,kotlin.collections.List,androidx.compose.ui.geometry.Offset,kotlin.Float,androidx.compose.ui.geometry.Offset)( id: https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerId, currentTime: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html, currentPosition: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset, currentPressed: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html, pressure: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html, previousTime: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html, previousPosition: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset, previousPressed: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html, type: https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerType, historical: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html<https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/HistoricalChange>, scrollDelta: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset, scaleFactor: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html, panOffset: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset )` Make a shallow copy of the `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange` | Cmn |
| `open https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange#toString()()` | Cmn |

| ### Public properties |
|---|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/ConsumedData` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange#consumed()` **This property is deprecated.** use isConsumed and consume() pair of methods instead | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html<https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/HistoricalChange>` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange#historical()` Optional high-frequency pointer moves in between the last two dispatched events. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerId` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange#id()` The unique id of the pointer associated with this `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange`. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange#isConsumed()` Indicates whether the change was consumed or not. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange#panOffset()` An `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` in pixel coordinates indicating an amount of panning. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange#position()` The `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` of the current pointer event, relative to the containing element (values can be negative or larger than the element bounds). | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange#pressed()` `true` if the pointer event is considered "pressed." For example, finger touching the screen or a mouse button is pressed `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange#pressed()` would be `true`. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange#pressure()` The pressure of the of the pointer event | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange#previousPosition()` The `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` of the previous pointer event, offset to the `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange#position()` and relative to the containing element. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange#previousPressed()` `true` if the pointer event was considered "pressed." For example , if a finger was touching the screen or a mouse button was pressed, `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange#previousPressed()` would be `true`. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange#previousUptimeMillis()` The `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange#uptimeMillis()` of the previous pointer event | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange#scaleFactor()` A multiplicative scale factor indicating the amount of scale to perform as part of this pointer input change. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange#scrollDelta()` The change in scroll position along the horizontal and vertical axes. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerType` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange#type()` The device type that produced the event, such as `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerType#Mouse()`, or `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerType#Touch()`. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange#uptimeMillis()` The time of the current pointer event, in milliseconds. | Cmn |

| ### Extension functions |
|---|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange.[anyChangeConsumed](https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange#(androidx.compose.ui.input.pointer.PointerInputChange).anyChangeConsumed())()` **This function is deprecated.** Partial consumption has been deprecated. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange.https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange#(androidx.compose.ui.input.pointer.PointerInputChange).changedToDown()()` True if this `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange` represents a pointer coming in contact with the screen and that change has not been consumed. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange.https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange#(androidx.compose.ui.input.pointer.PointerInputChange).changedToDownIgnoreConsumed()()` True if this `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange` represents a pointer coming in contact with the screen, whether or not that change has been consumed. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange.https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange#(androidx.compose.ui.input.pointer.PointerInputChange).changedToUp()()` True if this `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange` represents a pointer breaking contact with the screen and that change has not been consumed. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange.https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange#(androidx.compose.ui.input.pointer.PointerInputChange).changedToUpIgnoreConsumed()()` True if this `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange` represents a pointer breaking contact with the screen, whether or not that change has been consumed. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange.[consumeAllChanges](https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange#(androidx.compose.ui.input.pointer.PointerInputChange).consumeAllChanges())()` **This function is deprecated.** Use consume() instead | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange.[consumeDownChange](https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange#(androidx.compose.ui.input.pointer.PointerInputChange).consumeDownChange())()` **This function is deprecated.** Partial consumption has been deprecated. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange.[consumePositionChange](https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange#(androidx.compose.ui.input.pointer.PointerInputChange).consumePositionChange())()` **This function is deprecated.** Partial consumption has been deprecated. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange.[isOutOfBounds](https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange#(androidx.compose.ui.input.pointer.PointerInputChange).isOutOfBounds(androidx.compose.ui.unit.IntSize))(size: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/IntSize)` **This function is deprecated.** Use isOutOfBounds() that supports minimum touch target | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange.https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange#(androidx.compose.ui.input.pointer.PointerInputChange).isOutOfBounds(androidx.compose.ui.unit.IntSize,androidx.compose.ui.geometry.Size)( size: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/IntSize, extendedTouchPadding: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Size )` Returns `true` if the pointer has moved outside of the pointer region. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange.https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange#(androidx.compose.ui.input.pointer.PointerInputChange).positionChange()()` The distance that the pointer has moved on the screen minus any distance that has been consumed. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange.[positionChangeConsumed](https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange#(androidx.compose.ui.input.pointer.PointerInputChange).positionChangeConsumed())()` **This function is deprecated.** Partial consumption has been deprecated. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange.https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange#(androidx.compose.ui.input.pointer.PointerInputChange).positionChangeIgnoreConsumed()()` The distance that the pointer has moved on the screen, ignoring the fact that it might have been consumed. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange.https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange#(androidx.compose.ui.input.pointer.PointerInputChange).positionChanged()()` True if this `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange` represents a pointer moving on the screen and some of that movement has not been consumed. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange.https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange#(androidx.compose.ui.input.pointer.PointerInputChange).positionChangedIgnoreConsumed()()` True if this `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange` represents a pointer moving on the screen ignoring how much of that movement may have been consumed. | Cmn |

## Public constructors

### PointerInputChange

Cmn Added in [1.11.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.11.0)

```
PointerInputChange(
    id: PointerId,
    uptimeMillis: Long,
    position: Offset,
    pressed: Boolean,
    previousUptimeMillis: Long,
    previousPosition: Offset,
    previousPressed: Boolean,
    isInitiallyConsumed: Boolean,
    type: PointerType = PointerType.Touch,
    scrollDelta: Offset = Offset.Zero,
    scaleFactor: Float = 1.0f,
    panOffset: Offset = Offset.Zero
)
```

### PointerInputChange

Cmn Added in [1.11.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.11.0)

```
PointerInputChange(
    id: PointerId,
    uptimeMillis: Long,
    position: Offset,
    pressed: Boolean,
    pressure: Float,
    previousUptimeMillis: Long,
    previousPosition: Offset,
    previousPressed: Boolean,
    isInitiallyConsumed: Boolean,
    type: PointerType = PointerType.Touch,
    scrollDelta: Offset = Offset.Zero,
    scaleFactor: Float = 1.0f,
    panOffset: Offset = Offset.Zero
)
```

| Parameters |
|---|---|
| `id: https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerId` | The unique id of the pointer associated with this `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange`. |
| `uptimeMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` | The time of the current pointer event, in milliseconds. The start (`0`) time is platform-dependent |
| `position: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` | The `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` of the current pointer event, relative to the containing element (values can be negative or larger than the element bounds). |
| `pressed: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `true` if the pointer event is considered "pressed." For example, finger touching the screen or a mouse button is pressed `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange#pressed()` would be `true`. |
| `pressure: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` | The pressure of the of the pointer event |
| `previousUptimeMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` | The `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange#uptimeMillis()` of the previous pointer event |
| `previousPosition: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` | The `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` of the previous pointer event, offset to the `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange#position()` and relative to the containing element. |
| `previousPressed: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `true` if the pointer event was considered "pressed." For example , if a finger was touching the screen or a mouse button was pressed, `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange#previousPressed()` would be `true`. |
| `isInitiallyConsumed: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | whether the change was consumed from the start or not. This value can change over time as change is propagated through the pointer handlers. To query the actual status of the change use `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange#isConsumed()` |
| `type: https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerType = PointerType.Touch` | The device type that produced the event, such as `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerType#Mouse()`, or `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerType#Touch()`. |
| `scrollDelta: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset = Offset.Zero` | The change in scroll position along the horizontal and vertical axes. Note that this value is platform-dependent and is not normalized to pixel coordinates: - **Desktop \& Android** : Measured in platform-specific mouse wheel tick units. - **Web** : Raw delta values directly from the browser's `WheelEvent`. - **iOS**: Native scroll gesture delta. Also consider handling `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange#panOffset()`, which represents trackpad scroll gestures. |
| `scaleFactor: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html = 1.0f` | A multiplicative scale factor indicating the amount of scale to perform as part of this pointer input change. A value of `1f` indicates no scale, a value less than `1f` indicates a scale down, commonly causing a zoom out, and a value greater than `1f` indicates a scale up, commonly causing a zoom in. |
| `panOffset: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset = Offset.Zero` | An `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` in pixel coordinates indicating an amount of panning. Also consider handling `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange#scrollDelta()`, which represents a similar action from mouse wheels. |

## Public functions

### consume

Cmn Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.1.0)

```
fun consume(): Unit
```

Consume change event, claiming all the corresponding change info to the caller. This is usually needed when, button, when being clicked, consumed the "up" event so no other parents of this button could consume this "up" again.

"Consumption" is just an indication of the claim and each pointer input handler implementation must manually check this flag to respect it.

### copy

Cmn Added in [1.10.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.10.0)

```
fun copy(
    id: PointerId = this.id,
    currentTime: Long = this.uptimeMillis,
    currentPosition: Offset = this.position,
    currentPressed: Boolean = this.pressed,
    previousTime: Long = this.previousUptimeMillis,
    previousPosition: Offset = this.previousPosition,
    previousPressed: Boolean = this.previousPressed,
    type: PointerType = this.type,
    scrollDelta: Offset = this.scrollDelta
): PointerInputChange
```

Make a shallow copy of the `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange`

**NOTE:** Due to the need of the inner contract of the `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange`, this method performs a shallow copy of the `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange`. Any `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange#consume()` call between any of the copies will consume any other copy automatically. Therefore, copy with the new `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange#isConsumed()` is not possible. Consider creating a new `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange`

### copy

Cmn Added in [1.10.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.10.0)

```
fun copy(
    id: PointerId = this.id,
    currentTime: Long = this.uptimeMillis,
    currentPosition: Offset = this.position,
    currentPressed: Boolean = this.pressed,
    pressure: Float = this.pressure,
    previousTime: Long = this.previousUptimeMillis,
    previousPosition: Offset = this.previousPosition,
    previousPressed: Boolean = this.previousPressed,
    type: PointerType = this.type,
    scrollDelta: Offset = this.scrollDelta
): PointerInputChange
```

Make a shallow copy of the `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange`

**NOTE:** Due to the need of the inner contract of the `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange`, this method performs a shallow copy of the `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange`. Any `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange#consume()` call between any of the copies will consume any other copy automatically. Therefore, copy with the new `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange#isConsumed()` is not possible. Consider creating a new `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange`.

### copy

Cmn Added in [1.10.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.10.0) Deprecated in [1.10.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.10.0)

```
fun [copy](https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange#copy(androidx.compose.ui.input.pointer.PointerId,kotlin.Long,androidx.compose.ui.geometry.Offset,kotlin.Boolean,kotlin.Long,androidx.compose.ui.geometry.Offset,kotlin.Boolean,androidx.compose.ui.input.pointer.ConsumedData,androidx.compose.ui.input.pointer.PointerType,androidx.compose.ui.geometry.Offset))(
    id: PointerId = this.id,
    currentTime: Long = this.uptimeMillis,
    currentPosition: Offset = this.position,
    currentPressed: Boolean = this.pressed,
    previousTime: Long = this.previousUptimeMillis,
    previousPosition: Offset = this.previousPosition,
    previousPressed: Boolean = this.previousPressed,
    consumed: ConsumedData,
    type: PointerType = this.type,
    scrollDelta: Offset = this.scrollDelta
): PointerInputChange
```

> [!CAUTION]
> **This function is deprecated.**   
> Partial consumption has been deprecated. Use copy() instead without \`consumed\` parameter to create a shallow copy or a constructor to create a new PointerInputChange, use this instead:
>
> ```kotlin
> copy(id, currentTime, currentPosition, currentPressed, previousTime, previousPosition, previousPressed, type, scrollDelta)
> ```

### copy

Cmn Added in [1.10.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.10.0)

```
@ExperimentalComposeUiApi
fun copy(
    id: PointerId = this.id,
    currentTime: Long = this.uptimeMillis,
    currentPosition: Offset = this.position,
    currentPressed: Boolean = this.pressed,
    previousTime: Long = this.previousUptimeMillis,
    previousPosition: Offset = this.previousPosition,
    previousPressed: Boolean = this.previousPressed,
    type: PointerType = this.type,
    historical: List<HistoricalChange>,
    scrollDelta: Offset = this.scrollDelta
): PointerInputChange
```

Make a shallow copy of the `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange`

**NOTE:** Due to the need of the inner contract of the `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange`, this method performs a shallow copy of the `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange`. Any `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange#consume()` call between any of the copies will consume any other copy automatically. Therefore, copy with the new `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange#isConsumed()` is not possible. Consider creating a new `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange`.

### copy

Cmn Added in [1.10.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.10.0)

```
fun copy(
    id: PointerId = this.id,
    currentTime: Long = this.uptimeMillis,
    currentPosition: Offset = this.position,
    currentPressed: Boolean = this.pressed,
    pressure: Float = this.pressure,
    previousTime: Long = this.previousUptimeMillis,
    previousPosition: Offset = this.previousPosition,
    previousPressed: Boolean = this.previousPressed,
    type: PointerType = this.type,
    historical: List<HistoricalChange> = this.historical,
    scrollDelta: Offset = this.scrollDelta
): PointerInputChange
```

Make a shallow copy of the `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange`

**NOTE:** Due to the need of the inner contract of the `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange`, this method performs a shallow copy of the `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange`. Any `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange#consume()` call between any of the copies will consume any other copy automatically. Therefore, copy with the new `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange#isConsumed()` is not possible. Consider creating a new `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange`.

### copy

Cmn Added in [1.11.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.11.0)

```
fun copy(
    id: PointerId = this.id,
    currentTime: Long = this.uptimeMillis,
    currentPosition: Offset = this.position,
    currentPressed: Boolean = this.pressed,
    pressure: Float = this.pressure,
    previousTime: Long = this.previousUptimeMillis,
    previousPosition: Offset = this.previousPosition,
    previousPressed: Boolean = this.previousPressed,
    type: PointerType = this.type,
    historical: List<HistoricalChange> = this.historical,
    scrollDelta: Offset = this.scrollDelta,
    scaleFactor: Float = this.scaleFactor,
    panOffset: Offset = this.panOffset
): PointerInputChange
```

Make a shallow copy of the `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange`

**NOTE:** Due to the need of the inner contract of the `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange`, this method performs a shallow copy of the `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange`. Any `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange#consume()` call between any of the copies will consume any other copy automatically. Therefore, copy with the new `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange#isConsumed()` is not possible. Consider creating a new `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange`.

### toString

Cmn

```
open fun toString(): String
```

## Public properties

### consumed

Cmn Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0) Deprecated in [1.2.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.2.0)

```
val consumed: ConsumedData
```

> [!CAUTION]
> **This property is deprecated.**   
> use isConsumed and consume() pair of methods instead

### historical

Cmn Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.1.0)

```
val historical: List<HistoricalChange>
```

Optional high-frequency pointer moves in between the last two dispatched events. Can be used for extra accuracy when input rate exceeds framerate.

### id

Cmn Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
val id: PointerId
```

The unique id of the pointer associated with this `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange`.

### isConsumed

Cmn Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.1.0)

```
val isConsumed: Boolean
```

Indicates whether the change was consumed or not. Note that the change must be consumed in full as there's no partial consumption system provided.

### panOffset

Cmn

```
val panOffset: Offset
```

An `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` in pixel coordinates indicating an amount of panning. Also consider handling `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange#scrollDelta()`, which represents a similar action from mouse wheels.

### position

Cmn Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
val position: Offset
```

The `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` of the current pointer event, relative to the containing element (values can be negative or larger than the element bounds).

### pressed

Cmn Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
val pressed: Boolean
```

`true` if the pointer event is considered "pressed." For example, finger touching the screen or a mouse button is pressed `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange#pressed()` would be `true`.

### pressure

Cmn Added in [1.3.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.3.0)

```
val pressure: Float
```

The pressure of the of the pointer event

### previousPosition

Cmn Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
val previousPosition: Offset
```

The `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` of the previous pointer event, offset to the `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange#position()` and relative to the containing element.

### previousPressed

Cmn Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
val previousPressed: Boolean
```

`true` if the pointer event was considered "pressed." For example , if a finger was touching the screen or a mouse button was pressed, `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange#previousPressed()` would be `true`.

### previousUptimeMillis

Cmn Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
val previousUptimeMillis: Long
```

The `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange#uptimeMillis()` of the previous pointer event

### scaleFactor

Cmn Added in [1.11.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.11.0)

```
val scaleFactor: Float
```

A multiplicative scale factor indicating the amount of scale to perform as part of this pointer input change. A value of `1f` indicates no scale, a value less than `1f` indicates a scale down, commonly causing a zoom out, and a value greater than `1f` indicates a scale up, commonly causing a zoom in.

### scrollDelta

Cmn Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.1.0)

```
val scrollDelta: Offset
```

The change in scroll position along the horizontal and vertical axes. Note that this value is platform-dependent and is not normalized to pixel coordinates: - **Desktop \& Android** : Measured in platform-specific mouse wheel tick units. - **Web** : Raw delta values directly from the browser's `WheelEvent`. - **iOS**: Native scroll gesture delta.

Also consider handling `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange#panOffset()`, which represents trackpad scroll gestures.

### type

Cmn Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
val type: PointerType
```

The device type that produced the event, such as `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerType#Mouse()`, or `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerType#Touch()`.

### uptimeMillis

Cmn Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
val uptimeMillis: Long
```

The time of the current pointer event, in milliseconds. The start (`0`) time is platform-dependent

## Extension functions

### PointerInputChange.anyChangeConsumed

Cmn Artifact: [androidx.compose.ui:ui](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/input/pointer/PointerEvent.kt+function:anyChangeConsumed)

```
fun PointerInputChange.[anyChangeConsumed](https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange#(androidx.compose.ui.input.pointer.PointerInputChange).anyChangeConsumed())(): Boolean
```

> [!CAUTION]
> **This function is deprecated.**   
> Partial consumption has been deprecated. Use isConsumed instead, use this instead:
>
> ```kotlin
> isConsumed
> ```

True if any aspect of this `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange` has been consumed.

### PointerInputChange.changedToDown

Cmn Artifact: [androidx.compose.ui:ui](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/input/pointer/PointerEvent.kt+function:changedToDown)

```
fun PointerInputChange.changedToDown(): Boolean
```

True if this `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange` represents a pointer coming in contact with the screen and that change has not been consumed.

### PointerInputChange.changedToDownIgnoreConsumed

Cmn Artifact: [androidx.compose.ui:ui](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/input/pointer/PointerEvent.kt+function:changedToDownIgnoreConsumed)

```
fun PointerInputChange.changedToDownIgnoreConsumed(): Boolean
```

True if this `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange` represents a pointer coming in contact with the screen, whether or not that change has been consumed.

### PointerInputChange.changedToUp

Cmn Artifact: [androidx.compose.ui:ui](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/input/pointer/PointerEvent.kt+function:changedToUp)

```
fun PointerInputChange.changedToUp(): Boolean
```

True if this `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange` represents a pointer breaking contact with the screen and that change has not been consumed.

### PointerInputChange.changedToUpIgnoreConsumed

Cmn Artifact: [androidx.compose.ui:ui](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/input/pointer/PointerEvent.kt+function:changedToUpIgnoreConsumed)

```
fun PointerInputChange.changedToUpIgnoreConsumed(): Boolean
```

True if this `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange` represents a pointer breaking contact with the screen, whether or not that change has been consumed.

### PointerInputChange.consumeAllChanges

Cmn Artifact: [androidx.compose.ui:ui](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/input/pointer/PointerEvent.kt+function:consumeAllChanges)

```
fun PointerInputChange.[consumeAllChanges](https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange#(androidx.compose.ui.input.pointer.PointerInputChange).consumeAllChanges())(): Unit
```

> [!CAUTION]
> **This function is deprecated.**   
> Use consume() instead, use this instead:
>
> ```kotlin
> consume()
> ```

Consumes all changes associated with the `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange`

### PointerInputChange.consumeDownChange

Cmn Artifact: [androidx.compose.ui:ui](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/input/pointer/PointerEvent.kt+function:consumeDownChange)

```
fun PointerInputChange.[consumeDownChange](https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange#(androidx.compose.ui.input.pointer.PointerInputChange).consumeDownChange())(): Unit
```

> [!CAUTION]
> **This function is deprecated.**   
> Partial consumption has been deprecated. Use consume() instead, use this instead:
>
> ```kotlin
> if (pressed != previousPressed) consume()
> ```

Consume the up or down change of this `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange` if there is an up or down change to consume.

### PointerInputChange.consumePositionChange

Cmn Artifact: [androidx.compose.ui:ui](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/input/pointer/PointerEvent.kt+function:consumePositionChange)

```
fun PointerInputChange.[consumePositionChange](https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange#(androidx.compose.ui.input.pointer.PointerInputChange).consumePositionChange())(): Unit
```

> [!CAUTION]
> **This function is deprecated.**   
> Partial consumption has been deprecated. Use consume() instead, use this instead:
>
> ```kotlin
> if (positionChange() != Offset.Zero) consume()
> ```

Consume position change if there is any

### PointerInputChange.isOutOfBounds

Cmn Artifact: [androidx.compose.ui:ui](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/input/pointer/PointerEvent.kt+function:isOutOfBounds)

```
fun PointerInputChange.[isOutOfBounds](https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange#(androidx.compose.ui.input.pointer.PointerInputChange).isOutOfBounds(androidx.compose.ui.unit.IntSize))(size: IntSize): Boolean
```

> [!CAUTION]
> **This function is deprecated.**   
> Use isOutOfBounds() that supports minimum touch target, use this instead:
>
> ```kotlin
> this.isOutOfBounds(size, extendedTouchPadding)
> ```

Returns `true` if the pointer has moved outside of the region of `(0, 0, size.width, size.height)` or `false` if the current pointer is up or it is inside the given bounds.

### PointerInputChange.isOutOfBounds

Cmn Artifact: [androidx.compose.ui:ui](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/input/pointer/PointerEvent.kt+function:isOutOfBounds)

```
fun PointerInputChange.isOutOfBounds(
    size: IntSize,
    extendedTouchPadding: Size
): Boolean
```

Returns `true` if the pointer has moved outside of the pointer region. For Touch events, this is (-extendedTouchPadding.width, -extendedTouchPadding.height, size.width + extendedTouchPadding.width, size.height + extendedTouchPadding.height) and for other events, this is `(0, 0, size.width, size.height)`. Returns`false` if the current pointer is up or it is inside the pointer region.

### PointerInputChange.positionChange

Cmn Artifact: [androidx.compose.ui:ui](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/input/pointer/PointerEvent.kt+function:positionChange)

```
fun PointerInputChange.positionChange(): Offset
```

The distance that the pointer has moved on the screen minus any distance that has been consumed.

### PointerInputChange.positionChangeConsumed

Cmn Artifact: [androidx.compose.ui:ui](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/input/pointer/PointerEvent.kt+function:positionChangeConsumed)

```
fun PointerInputChange.[positionChangeConsumed](https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange#(androidx.compose.ui.input.pointer.PointerInputChange).positionChangeConsumed())(): Boolean
```

> [!CAUTION]
> **This function is deprecated.**   
> Partial consumption has been deprecated. Use isConsumed instead, use this instead:
>
> ```kotlin
> isConsumed
> ```

True if this `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange`'s movement has been consumed.

### PointerInputChange.positionChangeIgnoreConsumed

Cmn Artifact: [androidx.compose.ui:ui](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/input/pointer/PointerEvent.kt+function:positionChangeIgnoreConsumed)

```
fun PointerInputChange.positionChangeIgnoreConsumed(): Offset
```

The distance that the pointer has moved on the screen, ignoring the fact that it might have been consumed.

### PointerInputChange.positionChanged

Cmn Artifact: [androidx.compose.ui:ui](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/input/pointer/PointerEvent.kt+function:positionChanged)

```
fun PointerInputChange.positionChanged(): Boolean
```

True if this `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange` represents a pointer moving on the screen and some of that movement has not been consumed.

### PointerInputChange.positionChangedIgnoreConsumed

Cmn Artifact: [androidx.compose.ui:ui](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/input/pointer/PointerEvent.kt+function:positionChangedIgnoreConsumed)

```
fun PointerInputChange.positionChangedIgnoreConsumed(): Boolean
```

True if this `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange` represents a pointer moving on the screen ignoring how much of that movement may have been consumed.