From e73138201463d1f5036d7436d58d208fc45a6a0c Mon Sep 17 00:00:00 2001 From: littleblack111 Date: Sat, 22 Aug 2026 16:59:02 +0800 Subject: SelectionState: fallback if null --- popups/launcher/components/SelectionState.qml | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) (limited to 'popups') diff --git a/popups/launcher/components/SelectionState.qml b/popups/launcher/components/SelectionState.qml index 8ca907f..d999baa 100644 --- a/popups/launcher/components/SelectionState.qml +++ b/popups/launcher/components/SelectionState.qml @@ -27,16 +27,19 @@ Singleton { signal syncSelectionState onSelectedPriorityChanged: { - if (selectedPriority > previousSelectedPriority) { - priorities[selectedPriority].home(); - priorities[selectedPriority].syncSelectionState(); - } else { - priorities[selectedPriority].end(); - priorities[selectedPriority].syncSelectionState(); + // so it won't mess w/ if we changed it via mouse + if (Math.abs(selectedPriority - previousSelectedPriority) == 1) { + if (selectedPriority > previousSelectedPriority) { + priorities[selectedPriority].home(); + } else { + priorities[selectedPriority].end(); + } } + priorities[selectedPriority].syncSelectionState(); previousSelectedPriority = selectedPriority; } + // order them based on widgets(which came from order from config) onPrioritiesChanged: { for (let i = priorities.length - 1; i >= 0; i--) @@ -45,7 +48,13 @@ Singleton { priorities.sort((a, b) => (widgets.indexOf(a) - widgets.indexOf(b)) || 0); - priorities.forEach((item, index) => {}); + if (!priorities[selectedPriority]) { + if (priorities[previousSelectedPriority]) { + selectedPriority = previousSelectedPriority; + } else { + selectedPriority = 0; + } + } priorities[selectedPriority]?.syncSelectionState(); } -- cgit v1.2.3