summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--launcher/components/Clip.qml8
1 files changed, 8 insertions, 0 deletions
diff --git a/launcher/components/Clip.qml b/launcher/components/Clip.qml
index 21150a0..536aca0 100644
--- a/launcher/components/Clip.qml
+++ b/launcher/components/Clip.qml
@@ -46,12 +46,20 @@ IComponent {
onClipHistChanged: {
selectedIndex = 0;
+ flickable.contentY = 0;
// selectedIndexChanged dont get called somehow
syncSelectionState();
}
onSelectedIndexChanged: {
syncSelectionState();
+ if (selectedIndex < 0 || selectedIndex >= repeater.count)
+ return;
+ Qt.callLater(() => {
+ const i = repeater.itemAt(selectedIndex), t = i.y, b = i.y + i.height, v = flickable.contentY, vb = v + flickable.height, maxY = Math.max(0, flickable.contentHeight - flickable.height);
+ const y = t < v ? t : b > vb ? b - flickable.height : v;
+ flickable.contentY = Math.max(0, Math.min(maxY, y));
+ });
}
function syncSelectionState() {