From dcbb725b39e7ff7cda2ad0a85ad2352acd708bf7 Mon Sep 17 00:00:00 2001 From: littleblack111 Date: Sun, 23 Aug 2026 12:14:32 +0800 Subject: SelectionState: actually defer into Qt.callLater instead of busy waiting --- popups/launcher/components/SelectionState.qml | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) (limited to 'popups') diff --git a/popups/launcher/components/SelectionState.qml b/popups/launcher/components/SelectionState.qml index 7180129..d8055d6 100644 --- a/popups/launcher/components/SelectionState.qml +++ b/popups/launcher/components/SelectionState.qml @@ -36,17 +36,12 @@ Singleton { priorities.sort((a, b) => (widgets.indexOf(a) - widgets.indexOf(b)) || 0); - Qt.callLater(() => { - let prevSelectedPriority = selectedPriority; - while (!priorities[selectedPriority] && selectedPriority > 0) { - if (prevSelectedPriority === selectedPriority) { - Qt.callLater(() => { - if (!priorities[selectedPriority] && selectedPriority > 0) - selectedPriority--; - priorities[selectedPriority]?.syncSelectionState(); - }); - } - prevSelectedPriority = selectedPriority; + Qt.callLater(function step() { + if (!priorities[selectedPriority] && selectedPriority > 0) { + selectedPriority--; + Qt.callLater(step); + } else { + priorities[selectedPriority]?.syncSelectionState(); } }); } -- cgit v1.2.3