Fixed tabs scrollbar handling clicks when it isn't visible
This commit is contained in:
parent
76cfcb69d8
commit
113ff9339f
@ -58,6 +58,26 @@ fun RepositoriesTabPanel(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
val canBeScrolled by remember {
|
||||||
|
derivedStateOf {
|
||||||
|
val layoutInfo = stateHorizontal.layoutInfo
|
||||||
|
val visibleItemsInfo = layoutInfo.visibleItemsInfo
|
||||||
|
if (layoutInfo.totalItemsCount == 0) {
|
||||||
|
false
|
||||||
|
} else {
|
||||||
|
val firstVisibleItem = visibleItemsInfo.first()
|
||||||
|
val lastVisibleItem = visibleItemsInfo.last()
|
||||||
|
|
||||||
|
val viewportHeight = layoutInfo.viewportEndOffset + layoutInfo.viewportStartOffset
|
||||||
|
|
||||||
|
!(firstVisibleItem.index == 0 &&
|
||||||
|
firstVisibleItem.offset == 0 &&
|
||||||
|
lastVisibleItem.index + 1 == layoutInfo.totalItemsCount &&
|
||||||
|
lastVisibleItem.offset + lastVisibleItem.size <= viewportHeight)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
Row {
|
Row {
|
||||||
Box(
|
Box(
|
||||||
@ -99,15 +119,17 @@ fun RepositoriesTabPanel(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Tooltip(
|
if (canBeScrolled) {
|
||||||
"\"Shift + Mouse wheel\" to scroll"
|
Tooltip(
|
||||||
) {
|
"\"Shift + Mouse wheel\" to scroll"
|
||||||
HorizontalScrollbar(
|
) {
|
||||||
modifier = Modifier
|
HorizontalScrollbar(
|
||||||
.align(Alignment.TopStart)
|
modifier = Modifier
|
||||||
.width((tabs.count() * 180).dp),
|
.align(Alignment.TopStart)
|
||||||
adapter = rememberScrollbarAdapter(stateHorizontal)
|
.width((tabs.count() * 180).dp),
|
||||||
)
|
adapter = rememberScrollbarAdapter(stateHorizontal)
|
||||||
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user