Cut from textfield

This commit is contained in:
Sad Ellie 2023-02-22 17:14:13 +04:00
parent 88a14bdd51
commit 9553760a72
3 changed files with 9 additions and 5 deletions

View File

@ -195,7 +195,8 @@ private fun CalculatorScreen(
selection = TextRange(uiState.selection.first, uiState.selection.last)
),
onCursorChange = onCursorChange,
pasteCallback = addSymbol
pasteCallback = addSymbol,
cutCallback = deleteSymbol
)
Text(
modifier = Modifier

View File

@ -36,14 +36,16 @@ internal fun InputTextField(
modifier: Modifier,
value: TextFieldValue,
onCursorChange: (IntRange) -> Unit,
pasteCallback: (String) -> Unit
pasteCallback: (String) -> Unit,
cutCallback: () -> Unit
) {
val clipboardManager = LocalClipboardManager.current
CompositionLocalProvider(
LocalTextInputService provides null,
LocalTextToolbar provides UnittoTextToolbar(
view = LocalView.current,
pasteCallback = { pasteCallback(clipboardManager.getText()?.text ?: "") }
pasteCallback = { pasteCallback(clipboardManager.getText()?.text ?: "") },
cutCallback = cutCallback
)
) {
BasicTextField(

View File

@ -27,7 +27,8 @@ import androidx.compose.ui.platform.TextToolbarStatus
internal class UnittoTextToolbar(
private val view: View,
private val pasteCallback: () -> Unit
private val pasteCallback: () -> Unit,
private val cutCallback: () -> Unit
) : TextToolbar {
private var actionMode: ActionMode? = null
@ -44,7 +45,7 @@ internal class UnittoTextToolbar(
) {
textActionModeCallback.rect = rect
textActionModeCallback.onCopyRequested = onCopyRequested
textActionModeCallback.onCutRequested = onCutRequested
textActionModeCallback.onCutRequested = { cutCallback(); onCutRequested?.invoke() }
textActionModeCallback.onPasteRequested = { pasteCallback(); onPasteRequested?.invoke() }
textActionModeCallback.onSelectAllRequested = onSelectAllRequested
if (actionMode == null) {