parent
13ef706f17
commit
e79a261b06
@ -110,6 +110,22 @@ fun Modifier.fastClickable(key: Any = Unit, key2: Any = Unit, onClick: () -> Uni
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@OptIn(ExperimentalComposeUiApi::class)
|
||||||
|
@Composable
|
||||||
|
fun Modifier.onMiddleMouseButtonClick(key: Any = Unit, key2: Any = Unit, onClick: () -> Unit) =
|
||||||
|
this.pointerInput(key, key2) {
|
||||||
|
while (true) {
|
||||||
|
val lastMouseEvent = awaitPointerEventScope { awaitFirstDownEvent() }
|
||||||
|
val mouseEvent = lastMouseEvent.awtEventOrNull
|
||||||
|
|
||||||
|
if (mouseEvent != null) {
|
||||||
|
if (lastMouseEvent.button.isTertiary) {
|
||||||
|
onClick()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
private fun Modifier.hoverBackground(): Modifier {
|
private fun Modifier.hoverBackground(): Modifier {
|
||||||
val hoverInteraction = remember { MutableInteractionSource() }
|
val hoverInteraction = remember { MutableInteractionSource() }
|
||||||
|
@ -32,6 +32,7 @@ import com.jetpackduba.gitnuro.di.DaggerTabComponent
|
|||||||
import com.jetpackduba.gitnuro.di.TabComponent
|
import com.jetpackduba.gitnuro.di.TabComponent
|
||||||
import com.jetpackduba.gitnuro.extensions.handMouseClickable
|
import com.jetpackduba.gitnuro.extensions.handMouseClickable
|
||||||
import com.jetpackduba.gitnuro.extensions.handOnHover
|
import com.jetpackduba.gitnuro.extensions.handOnHover
|
||||||
|
import com.jetpackduba.gitnuro.extensions.onMiddleMouseButtonClick
|
||||||
import com.jetpackduba.gitnuro.managers.AppStateManager
|
import com.jetpackduba.gitnuro.managers.AppStateManager
|
||||||
import com.jetpackduba.gitnuro.viewmodels.TabViewModel
|
import com.jetpackduba.gitnuro.viewmodels.TabViewModel
|
||||||
import com.jetpackduba.gitnuro.viewmodels.TabViewModelsHolder
|
import com.jetpackduba.gitnuro.viewmodels.TabViewModelsHolder
|
||||||
@ -95,7 +96,7 @@ fun RepositoriesTabPanel(
|
|||||||
.weight(1f, false),
|
.weight(1f, false),
|
||||||
state = stateHorizontal,
|
state = stateHorizontal,
|
||||||
) {
|
) {
|
||||||
items(items = tabs) { tab ->
|
items(items = tabs, key = { it.tabViewModel }) { tab ->
|
||||||
Tooltip(tab.path) {
|
Tooltip(tab.path) {
|
||||||
Tab(
|
Tab(
|
||||||
title = tab.tabName,
|
title = tab.tabName,
|
||||||
@ -164,6 +165,9 @@ fun Tab(
|
|||||||
.fillMaxHeight()
|
.fillMaxHeight()
|
||||||
.hoverable(hoverInteraction)
|
.hoverable(hoverInteraction)
|
||||||
.handMouseClickable { onClick() }
|
.handMouseClickable { onClick() }
|
||||||
|
.onMiddleMouseButtonClick {
|
||||||
|
onCloseTab()
|
||||||
|
}
|
||||||
.background(backgroundColor),
|
.background(backgroundColor),
|
||||||
) {
|
) {
|
||||||
Row(
|
Row(
|
||||||
|
Loading…
Reference in New Issue
Block a user