diff --git a/build.gradle.kts b/build.gradle.kts index b92b9b9..e3269b3 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -9,7 +9,7 @@ plugins { kotlin("jvm") version "1.7.10" kotlin("kapt") version "1.7.10" kotlin("plugin.serialization") version "1.7.10" - id("org.jetbrains.compose") version "1.4.1" + id("org.jetbrains.compose") version "1.5.0-rc01" } // Remember to update Constants.APP_VERSION when changing this version diff --git a/src/main/kotlin/com/jetpackduba/gitnuro/extensions/ModifierExtensions.kt b/src/main/kotlin/com/jetpackduba/gitnuro/extensions/ModifierExtensions.kt index a02025e..1fba4a3 100644 --- a/src/main/kotlin/com/jetpackduba/gitnuro/extensions/ModifierExtensions.kt +++ b/src/main/kotlin/com/jetpackduba/gitnuro/extensions/ModifierExtensions.kt @@ -91,25 +91,6 @@ fun Modifier.onDoubleClick( } } -// TODO Try to restore hover that was shown with clickable modifier -@OptIn(ExperimentalComposeUiApi::class) -@Composable -fun Modifier.fastClickable(key: Any = Unit, key2: Any = Unit, onClick: () -> Unit) = - this.handOnHover() - .hoverBackground() - .pointerInput(key, key2) { - while (true) { - val lastMouseEvent = awaitPointerEventScope { awaitFirstDownEvent() } - val mouseEvent = lastMouseEvent.awtEventOrNull - - if (mouseEvent != null) { - if (lastMouseEvent.button.isPrimary) { - onClick() - } - } - } - } - @OptIn(ExperimentalComposeUiApi::class) @Composable fun Modifier.onMiddleMouseButtonClick(key: Any = Unit, key2: Any = Unit, onClick: () -> Unit) = diff --git a/src/main/kotlin/com/jetpackduba/gitnuro/ui/Blame.kt b/src/main/kotlin/com/jetpackduba/gitnuro/ui/Blame.kt index 5499565..63b1e1e 100644 --- a/src/main/kotlin/com/jetpackduba/gitnuro/ui/Blame.kt +++ b/src/main/kotlin/com/jetpackduba/gitnuro/ui/Blame.kt @@ -4,6 +4,7 @@ package com.jetpackduba.gitnuro.ui import androidx.compose.foundation.Image import androidx.compose.foundation.background +import androidx.compose.foundation.clickable import androidx.compose.foundation.focusable import androidx.compose.foundation.layout.* import androidx.compose.foundation.text.selection.DisableSelection @@ -96,7 +97,7 @@ fun Blame( .width(200.dp) .fillMaxHeight() .background(MaterialTheme.colors.secondarySurface) - .fastClickable { if (commit != null) onSelectCommit(commit) }, + .clickable { if (commit != null) onSelectCommit(commit) }, verticalArrangement = Arrangement.Center, ) { Text( diff --git a/src/main/kotlin/com/jetpackduba/gitnuro/ui/context_menu/ContextMenu.kt b/src/main/kotlin/com/jetpackduba/gitnuro/ui/context_menu/ContextMenu.kt index 6c6d55f..a989d40 100644 --- a/src/main/kotlin/com/jetpackduba/gitnuro/ui/context_menu/ContextMenu.kt +++ b/src/main/kotlin/com/jetpackduba/gitnuro/ui/context_menu/ContextMenu.kt @@ -33,6 +33,7 @@ import androidx.compose.ui.res.painterResource import androidx.compose.ui.unit.* import androidx.compose.ui.window.Popup import androidx.compose.ui.window.PopupPositionProvider +import androidx.compose.ui.window.PopupProperties import androidx.compose.ui.window.rememberPopupPositionProviderAtPosition import com.jetpackduba.gitnuro.AppIcons import com.jetpackduba.gitnuro.extensions.awaitFirstDownEvent @@ -135,7 +136,9 @@ private fun Modifier.dropdownMenu(items: () -> List): Modifi @Composable fun showPopup(x: Int, y: Int, contextMenuElements: List, onDismissRequest: () -> Unit) { Popup( - focusable = true, + properties = PopupProperties( + focusable = true, + ), popupPositionProvider = object : PopupPositionProvider { override fun calculatePosition( anchorBounds: IntRect, @@ -331,7 +334,9 @@ class AppContextMenuRepresentation : ContextMenuRepresentation { var inputModeManager: InputModeManager? by mutableStateOf(null) Popup( - focusable = true, + properties = PopupProperties( + focusable = true, + ), onDismissRequest = { state.status = ContextMenuState.Status.Closed }, popupPositionProvider = rememberPopupPositionProviderAtPosition( positionPx = status.rect.center diff --git a/src/main/kotlin/com/jetpackduba/gitnuro/ui/dialogs/MaterialDialog.kt b/src/main/kotlin/com/jetpackduba/gitnuro/ui/dialogs/MaterialDialog.kt index 0d3b821..0d7f406 100644 --- a/src/main/kotlin/com/jetpackduba/gitnuro/ui/dialogs/MaterialDialog.kt +++ b/src/main/kotlin/com/jetpackduba/gitnuro/ui/dialogs/MaterialDialog.kt @@ -26,6 +26,7 @@ import androidx.compose.ui.input.key.type import androidx.compose.ui.unit.* import androidx.compose.ui.window.Popup import androidx.compose.ui.window.PopupPositionProvider +import androidx.compose.ui.window.PopupProperties import com.jetpackduba.gitnuro.keybindings.KeybindingOption import com.jetpackduba.gitnuro.keybindings.matchesBinding import com.jetpackduba.gitnuro.theme.dialogOverlay @@ -40,7 +41,9 @@ fun MaterialDialog( content: @Composable () -> Unit ) { Popup( - focusable = true, + properties = PopupProperties( + focusable = true, + ), popupPositionProvider = object : PopupPositionProvider { override fun calculatePosition( anchorBounds: IntRect, diff --git a/src/main/kotlin/com/jetpackduba/gitnuro/ui/dialogs/NewBranchDialog.kt b/src/main/kotlin/com/jetpackduba/gitnuro/ui/dialogs/NewBranchDialog.kt index ca37e7b..3b93ea7 100644 --- a/src/main/kotlin/com/jetpackduba/gitnuro/ui/dialogs/NewBranchDialog.kt +++ b/src/main/kotlin/com/jetpackduba/gitnuro/ui/dialogs/NewBranchDialog.kt @@ -111,9 +111,9 @@ fun NewBranchDialog( ) } } - } - LaunchedEffect(Unit) { - branchFieldFocusRequester.requestFocus() + LaunchedEffect(Unit) { + branchFieldFocusRequester.requestFocus() + } } } \ No newline at end of file diff --git a/src/main/kotlin/com/jetpackduba/gitnuro/ui/dialogs/NewTagDialog.kt b/src/main/kotlin/com/jetpackduba/gitnuro/ui/dialogs/NewTagDialog.kt index 0978fab..0826e7a 100644 --- a/src/main/kotlin/com/jetpackduba/gitnuro/ui/dialogs/NewTagDialog.kt +++ b/src/main/kotlin/com/jetpackduba/gitnuro/ui/dialogs/NewTagDialog.kt @@ -111,9 +111,9 @@ fun NewTagDialog( ) } } - } - LaunchedEffect(Unit) { - fieldFocusRequester.requestFocus() + LaunchedEffect(Unit) { + fieldFocusRequester.requestFocus() + } } } \ No newline at end of file diff --git a/src/main/kotlin/com/jetpackduba/gitnuro/ui/dialogs/SignOffDialog.kt b/src/main/kotlin/com/jetpackduba/gitnuro/ui/dialogs/SignOffDialog.kt index c151926..0aafb96 100644 --- a/src/main/kotlin/com/jetpackduba/gitnuro/ui/dialogs/SignOffDialog.kt +++ b/src/main/kotlin/com/jetpackduba/gitnuro/ui/dialogs/SignOffDialog.kt @@ -168,9 +168,9 @@ fun SignOffDialog( ) } } - } - LaunchedEffect(state) { - signOffFieldFocusRequester.requestFocus() + LaunchedEffect(state) { + signOffFieldFocusRequester.requestFocus() + } } } diff --git a/src/main/kotlin/com/jetpackduba/gitnuro/ui/dialogs/StashWithMessageDialog.kt b/src/main/kotlin/com/jetpackduba/gitnuro/ui/dialogs/StashWithMessageDialog.kt index 6f73f36..336e6c2 100644 --- a/src/main/kotlin/com/jetpackduba/gitnuro/ui/dialogs/StashWithMessageDialog.kt +++ b/src/main/kotlin/com/jetpackduba/gitnuro/ui/dialogs/StashWithMessageDialog.kt @@ -111,9 +111,9 @@ fun StashWithMessageDialog( ) } } - } - LaunchedEffect(Unit) { - textFieldFocusRequester.requestFocus() + LaunchedEffect(Unit) { + textFieldFocusRequester.requestFocus() + } } } \ No newline at end of file diff --git a/src/main/kotlin/com/jetpackduba/gitnuro/ui/diff/Diff.kt b/src/main/kotlin/com/jetpackduba/gitnuro/ui/diff/Diff.kt index 9fe422b..406b8fb 100644 --- a/src/main/kotlin/com/jetpackduba/gitnuro/ui/diff/Diff.kt +++ b/src/main/kotlin/com/jetpackduba/gitnuro/ui/diff/Diff.kt @@ -1149,7 +1149,7 @@ fun DiffLineText(line: Line, diffEntryType: DiffEntryType, onActionTriggered: () contentDescription = null, tint = Color.White, modifier = Modifier - .fastClickable(line) { onActionTriggered() } + .clickable { onActionTriggered() } .size(16.dp) .clip(RoundedCornerShape(2.dp)) .background(color), diff --git a/src/main/kotlin/com/jetpackduba/gitnuro/ui/log/Log.kt b/src/main/kotlin/com/jetpackduba/gitnuro/ui/log/Log.kt index 85ca481..0747995 100644 --- a/src/main/kotlin/com/jetpackduba/gitnuro/ui/log/Log.kt +++ b/src/main/kotlin/com/jetpackduba/gitnuro/ui/log/Log.kt @@ -457,7 +457,7 @@ fun MessagesList( modifier = Modifier.height(LINE_HEIGHT.dp) .clipToBounds() .fillMaxWidth() - .fastClickable { logViewModel.selectUncommitedChanges() } + .clickable { logViewModel.selectUncommitedChanges() } ) { UncommitedChangesGraphNode( hasPreviousCommits = commitList.isNotEmpty(), @@ -760,7 +760,7 @@ fun CommitLine( ) { Box( modifier = Modifier - .fastClickable(graphNode, logViewModel) { onRevCommitSelected() } + .clickable { onRevCommitSelected() } ) { val nodeColor = colors[graphNode.lane.position % colors.size]