From 3ee8163e2d429e1ccb29ce101efc5ccfd4fd219d Mon Sep 17 00:00:00 2001 From: Abdelilah El Aissaoui Date: Mon, 24 Apr 2023 02:06:30 +0200 Subject: [PATCH] Pressing esc closes (un)commited changes filter --- .../com/jetpackduba/gitnuro/ui/CommitChanges.kt | 1 + .../com/jetpackduba/gitnuro/ui/UncommitedChanges.kt | 1 + .../gitnuro/ui/components/SearchTextField.kt | 13 +++++++++++++ 3 files changed, 15 insertions(+) diff --git a/src/main/kotlin/com/jetpackduba/gitnuro/ui/CommitChanges.kt b/src/main/kotlin/com/jetpackduba/gitnuro/ui/CommitChanges.kt index 1c62fe1..7f74969 100644 --- a/src/main/kotlin/com/jetpackduba/gitnuro/ui/CommitChanges.kt +++ b/src/main/kotlin/com/jetpackduba/gitnuro/ui/CommitChanges.kt @@ -160,6 +160,7 @@ fun CommitChangesView( searchFilter = searchFilter, onSearchFilterChanged = onSearchFilterChanged, searchFocusRequester = searchFocusRequester, + onClose = { onSearchFilterToggled(false) }, ) } diff --git a/src/main/kotlin/com/jetpackduba/gitnuro/ui/UncommitedChanges.kt b/src/main/kotlin/com/jetpackduba/gitnuro/ui/UncommitedChanges.kt index f587284..0bf8846 100644 --- a/src/main/kotlin/com/jetpackduba/gitnuro/ui/UncommitedChanges.kt +++ b/src/main/kotlin/com/jetpackduba/gitnuro/ui/UncommitedChanges.kt @@ -663,6 +663,7 @@ private fun EntriesList( searchFilter = searchFilter, onSearchFilterChanged = onSearchFilterChanged, searchFocusRequester = searchFocusRequester, + onClose = { onSearchFilterToggled(false) }, ) } diff --git a/src/main/kotlin/com/jetpackduba/gitnuro/ui/components/SearchTextField.kt b/src/main/kotlin/com/jetpackduba/gitnuro/ui/components/SearchTextField.kt index 993dcbc..18aa668 100644 --- a/src/main/kotlin/com/jetpackduba/gitnuro/ui/components/SearchTextField.kt +++ b/src/main/kotlin/com/jetpackduba/gitnuro/ui/components/SearchTextField.kt @@ -10,19 +10,32 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.focus.FocusRequester import androidx.compose.ui.focus.focusRequester +import androidx.compose.ui.input.key.KeyEventType +import androidx.compose.ui.input.key.onPreviewKeyEvent +import androidx.compose.ui.input.key.type import androidx.compose.ui.text.input.TextFieldValue import androidx.compose.ui.unit.dp +import com.jetpackduba.gitnuro.keybindings.KeybindingOption +import com.jetpackduba.gitnuro.keybindings.matchesBinding @Composable fun SearchTextField( searchFilter: TextFieldValue, onSearchFilterChanged: (TextFieldValue) -> Unit, searchFocusRequester: FocusRequester, + onClose: () -> Unit, ) { Box( modifier = Modifier .background(MaterialTheme.colors.background) .padding(horizontal = 4.dp, vertical = 4.dp) + .onPreviewKeyEvent { keyEvent -> + if (keyEvent.matchesBinding(KeybindingOption.EXIT) && keyEvent.type == KeyEventType.KeyDown) { + onClose() + true + } else + false + }, ) { AdjustableOutlinedTextField( value = searchFilter,