From 8afa784ef994bf3a858dd569241228a54bb164bb Mon Sep 17 00:00:00 2001 From: littleblack111 Date: Fri, 8 Aug 2025 13:42:22 +0800 Subject: clip: follow selectedIndex --- launcher/components/Clip.qml | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'launcher/components') 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() { -- cgit v1.2.3