---
title: "IndirectPointerInputModifierNode"
description: "A [androidx.compose.ui.Modifier.Node] that receives [IndirectPointerEvent]s. This modifier node
only receives events if it is focused, or if a child is focused. If you are implementing this
node, make sure to use this node with a focus modifier (such as focusTarget or focusable), or
make this node also delegate to a [androidx.compose.ui.focus.FocusTargetModifierNode]."
type: "interface"
---

<div class='type'>Interface</div>


<a id='references'></a>

<div class='sourceset sourceset-common'>Common</div>



```kotlin
interface IndirectPointerInputModifierNode : DelegatableNode
```


A `androidx.compose.ui.Modifier.Node` that receives `IndirectPointerEvent`s. This modifier node
only receives events if it is focused, or if a child is focused. If you are implementing this
node, make sure to use this node with a focus modifier (such as focusTarget or focusable), or
make this node also delegate to a `androidx.compose.ui.focus.FocusTargetModifierNode`.


## Functions

```kotlin
fun onIndirectPointerEvent(event: IndirectPointerEvent, pass: PointerEventPass)
```


Handles `IndirectPointerEvent`s that are dispatched to the node. A node can only receive
`IndirectPointerEvent`s if it is focused, or if a child is focused.

#### Parameters

| | |
| --- | --- |
| event | The `IndirectPointerEvent` that has been dispatched. |
| pass | The `PointerEventPass` in which this function is being called. |



```kotlin
fun onCancelIndirectPointerInput()
```


Invoked to notify the handler that no more calls to `IndirectPointerInputModifierNode` will
be made, until at least new pointers exist. This can occur for a few reasons:
1. Android dispatches ACTION_CANCEL to Compose.



