# DragAndDropSourceModifierNode

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/draganddrop/DragAndDropNode.kt+class:androidx.compose.ui.draganddrop.DragAndDropSourceModifierNode) Added in [1.8.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.8.0) Common/AllAndroid/JVM
- Cmn

  ```
  sealed interface DragAndDropSourceModifierNode : LayoutAwareModifierNode
  ```

*** ** * ** ***

A `https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier.Node` that can be used as a source for platform drag and drop operations. In most cases, you will want to delegate to the `https://developer.android.com/reference/kotlin/androidx/compose/ui/draganddrop/DragAndDropSourceModifierNode` returned by the eponymous factory method.

## Summary

| ### Public functions |
|---|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/draganddrop/DragAndDropSourceModifierNode#requestDragAndDropTransfer(androidx.compose.ui.geometry.Offset)(offset: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset)` Requests a drag and drop transfer. | Cmn |

| ### Public properties |
|---|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/draganddrop/DragAndDropSourceModifierNode#isRequestDragAndDropTransferRequired()` Returns a boolean value indicating whether requesting drag and drop transfer is required. | Cmn |

### Inherited functions

From [androidx.compose.ui.node.DelegatableNode](https://developer.android.com/reference/kotlin/androidx/compose/ui/node/DelegatableNode) `open https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `@https://developer.android.com/reference/kotlin/androidx/annotation/EmptySuper
https://developer.android.com/reference/kotlin/androidx/compose/ui/node/DelegatableNode#onDensityChange()()`

Invoked when the density changes for this node.
Cmn `open https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `@https://developer.android.com/reference/kotlin/androidx/annotation/EmptySuper
https://developer.android.com/reference/kotlin/androidx/compose/ui/node/DelegatableNode#onLayoutDirectionChange()()`

Invoked when the layout direction changes for this node.
Cmn From [androidx.compose.ui.node.LayoutAwareModifierNode](https://developer.android.com/reference/kotlin/androidx/compose/ui/node/LayoutAwareModifierNode) `open https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `@https://developer.android.com/reference/kotlin/androidx/annotation/EmptySuper
https://developer.android.com/reference/kotlin/androidx/compose/ui/node/LayoutAwareModifierNode#onPlaced(androidx.compose.ui.layout.LayoutCoordinates)(coordinates: https://developer.android.com/reference/kotlin/androidx/compose/ui/layout/LayoutCoordinates)`

`https://developer.android.com/reference/kotlin/androidx/compose/ui/node/LayoutAwareModifierNode#onPlaced(androidx.compose.ui.layout.LayoutCoordinates)` is called after the parent `https://developer.android.com/reference/kotlin/androidx/compose/ui/layout/LayoutModifier` and parent layout has been placed and before child `https://developer.android.com/reference/kotlin/androidx/compose/ui/layout/LayoutModifier` is placed.
Cmn `open https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `@https://developer.android.com/reference/kotlin/androidx/annotation/EmptySuper
https://developer.android.com/reference/kotlin/androidx/compose/ui/node/LayoutAwareModifierNode#onRemeasured(androidx.compose.ui.unit.IntSize)(size: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/IntSize)`

This method is called when the layout content is remeasured.
Cmn

### Inherited properties

From [androidx.compose.ui.node.DelegatableNode](https://developer.android.com/reference/kotlin/androidx/compose/ui/node/DelegatableNode) `https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier.Node` `https://developer.android.com/reference/kotlin/androidx/compose/ui/node/DelegatableNode#node()`

A reference of the `https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier.Node` that holds this node's position in the node hierarchy.
Cmn

## Public functions

### requestDragAndDropTransfer

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

```
fun requestDragAndDropTransfer(offset: Offset): Unit
```

Requests a drag and drop transfer. `https://developer.android.com/reference/kotlin/androidx/compose/ui/draganddrop/DragAndDropSourceModifierNode#isRequestDragAndDropTransferRequired()` can be used to check if it required to be performed.

| Parameters |
|---|---|
| `offset: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` | the offset value representing position of the input pointer. |

## Public properties

### isRequestDragAndDropTransferRequired

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

```
val isRequestDragAndDropTransferRequired: Boolean
```

Returns a boolean value indicating whether requesting drag and drop transfer is required.

This variable is used to check if the platform requires drag and drop transfer initiated by application explicitly, for example via a custom gesture.

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/draganddrop/DragAndDropSourceModifierNode#requestDragAndDropTransfer(androidx.compose.ui.geometry.Offset)` |   |