diff --git a/feature/calculator/src/main/java/com/sadellie/unitto/feature/calculator/CalculatorScreen.kt b/feature/calculator/src/main/java/com/sadellie/unitto/feature/calculator/CalculatorScreen.kt index bf7fbf4d..51758964 100644 --- a/feature/calculator/src/main/java/com/sadellie/unitto/feature/calculator/CalculatorScreen.kt +++ b/feature/calculator/src/main/java/com/sadellie/unitto/feature/calculator/CalculatorScreen.kt @@ -56,6 +56,7 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.layout.onPlaced import androidx.compose.ui.platform.LocalConfiguration +import androidx.compose.ui.platform.LocalFocusManager import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.TextRange import androidx.compose.ui.text.input.TextFieldValue @@ -114,6 +115,7 @@ private fun CalculatorScreen( evaluate: () -> Unit, clearHistory: () -> Unit ) { + val focusManager = LocalFocusManager.current val dragAmount = remember { Animatable(0f) } val dragCoroutineScope = rememberCoroutineScope() val dragAnimSpec = rememberSplineBasedDecay() @@ -183,6 +185,10 @@ private fun CalculatorScreen( dragAmount.snapTo(draggedAmount) } }, + onDragStarted = { + // Moving composables with focus causes performance drop + focusManager.clearFocus(true) + }, onDragStopped = { velocity -> dragCoroutineScope.launch { dragAmount.animateDecay(velocity, dragAnimSpec)