summaryrefslogtreecommitdiff
path: root/popups
diff options
context:
space:
mode:
authorlittleblack111 <littleblack11111@gmail.com>2026-08-22 16:59:02 +0800
committerlittleblack111 <littleblack11111@gmail.com>2026-08-22 17:00:46 +0800
commite73138201463d1f5036d7436d58d208fc45a6a0c (patch)
tree4a4a691beb872cabc788107949a81e43fe93121b /popups
parent2dee9de893ffe31890e6d3c40c02c68d01661c0c (diff)
SelectionState: fallback if null
Diffstat (limited to 'popups')
-rw-r--r--popups/launcher/components/SelectionState.qml23
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();
}