summaryrefslogtreecommitdiff
path: root/launcher
diff options
context:
space:
mode:
authorlittleblack111 <littleblack11111@gmail.com>2025-08-08 13:42:22 +0800
committerlittleblack111 <littleblack11111@gmail.com>2025-08-08 13:42:22 +0800
commit8afa784ef994bf3a858dd569241228a54bb164bb (patch)
tree5936474f3ea8e1a3a3e60855ad5b3bdcf8c68124 /launcher
parentb68a9883f0f839f7afda2d27684ba31090086110 (diff)
clip: follow selectedIndex
Diffstat (limited to 'launcher')
-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() {