diff options
| author | littleblack111 <littleblack11111@gmail.com> | 2026-08-22 16:59:02 +0800 |
|---|---|---|
| committer | littleblack111 <littleblack11111@gmail.com> | 2026-08-22 17:00:46 +0800 |
| commit | e73138201463d1f5036d7436d58d208fc45a6a0c (patch) | |
| tree | 4a4a691beb872cabc788107949a81e43fe93121b /popups | |
| parent | 2dee9de893ffe31890e6d3c40c02c68d01661c0c (diff) | |
SelectionState: fallback if null
Diffstat (limited to 'popups')
| -rw-r--r-- | popups/launcher/components/SelectionState.qml | 23 |
1 files changed, 16 insertions, 7 deletions
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(); } |
