summaryrefslogtreecommitdiff
path: root/popups/launcher
diff options
context:
space:
mode:
Diffstat (limited to 'popups/launcher')
-rw-r--r--popups/launcher/components/App.qml21
-rw-r--r--popups/launcher/components/Clip.qml11
-rw-r--r--popups/launcher/components/Emoji.qml17
-rw-r--r--popups/launcher/components/Spell.qml14
4 files changed, 29 insertions, 34 deletions
diff --git a/popups/launcher/components/App.qml b/popups/launcher/components/App.qml
index 0bb5fd9..a26d990 100644
--- a/popups/launcher/components/App.qml
+++ b/popups/launcher/components/App.qml
@@ -12,7 +12,6 @@ IComponent {
property list<DesktopEntry> entries: active ? AppSearch.query(inputCleaned) : []
property int selectedIndex: -1
- property bool mouseTriggered: false
name: "Applications"
@@ -45,27 +44,23 @@ IComponent {
up: function () {
if (selectedIndex <= 0)
return true;
- mouseTriggered = false;
selectedIndex--;
}
down: function () {
if (selectedIndex + 1 > listView.count - 1)
return true;
- mouseTriggered = false;
selectedIndex++;
}
home: function () {
if (listView.count === 0)
return true;
- mouseTriggered = false;
selectedIndex = -1;
selectedIndex = 0;
}
end: function () {
if (listView.count === 0)
return true;
- mouseTriggered = false;
selectedIndex = listView.count;
selectedIndex = listView.count - 1;
}
@@ -73,7 +68,6 @@ IComponent {
pgup: function () {
if (listView.count === 0)
return true;
- mouseTriggered = false;
const pageSize = Math.floor(listView.height / (General.appIconSize + Launcher.innerMargin * 2));
if (selectedIndex - pageSize < 0) {
selectedIndex = 0;
@@ -85,7 +79,6 @@ IComponent {
pgdn: function () {
if (listView.count === 0)
return true;
- mouseTriggered = false;
const pageSize = Math.floor(listView.height / (General.appIconSize + Launcher.innerMargin * 2));
if (selectedIndex + pageSize >= listView.count) {
selectedIndex = listView.count - 1;
@@ -99,6 +92,7 @@ IComponent {
syncSelectionState();
return;
}
+
selectedIndex = 0;
listView.contentY = 0;
syncSelectionState();
@@ -106,15 +100,18 @@ IComponent {
onSelectedIndexChanged: {
syncSelectionState();
- if (selectedIndex < 0 || selectedIndex >= listView.count || mouseTriggered)
- return;
Qt.callLater(() => {
listView.positionViewAtIndex(selectedIndex, ListView.Contain);
});
}
syncSelectionState: function () {
- Qt.callLater(() => state.selected = listView.itemAtIndex(selectedIndex));
+ Qt.callLater(() => {
+ if (selectedIndex < 0 || selectedIndex >= listView.count)
+ return;
+
+ state.selected = listView.itemAtIndex(selectedIndex);
+ });
}
IInnerComponent {
@@ -165,12 +162,8 @@ IComponent {
anchors.fill: parent
hoverEnabled: true
onPositionChanged: {
- root.mouseTriggered = true;
root.selectedIndex = index;
}
- onExited: {
- root.mouseTriggered = true;
- }
onPressed: {
root._exec();
}
diff --git a/popups/launcher/components/Clip.qml b/popups/launcher/components/Clip.qml
index bc8d65f..7c6a5d5 100644
--- a/popups/launcher/components/Clip.qml
+++ b/popups/launcher/components/Clip.qml
@@ -12,7 +12,6 @@ IComponent {
property var clipHist: active ? Clip.query(inputCleaned) : []
property int selectedIndex: -1
- property bool mouseTriggered: false
name: "Clipboard"
@@ -35,13 +34,11 @@ IComponent {
up: function () {
if (selectedIndex <= 0)
return true;
- mouseTriggered = false;
selectedIndex--;
}
down: function () {
if (selectedIndex + 1 > listView.count - 1)
return true;
- mouseTriggered = false;
selectedIndex++;
}
@@ -50,14 +47,14 @@ IComponent {
syncSelectionState();
return;
}
- mouseTriggered = false;
+
selectedIndex = 0;
listView.positionViewAtBeginning();
syncSelectionState();
}
onSelectedIndexChanged: {
- if (!mouseTriggered && selectedIndex >= 0 && selectedIndex < listView.count) {
+ if (selectedIndex >= 0 && selectedIndex < listView.count) {
Qt.callLater(() => {
listView.positionViewAtIndex(selectedIndex, ListView.Contain);
});
@@ -150,12 +147,8 @@ IComponent {
anchors.fill: parent
hoverEnabled: true
onPositionChanged: {
- root.mouseTriggered = true;
root.selectedIndex = index;
}
- onExited: {
- root.mouseTriggered = true;
- }
onPressed: {
root._exec();
}
diff --git a/popups/launcher/components/Emoji.qml b/popups/launcher/components/Emoji.qml
index 4e3a58d..10906c8 100644
--- a/popups/launcher/components/Emoji.qml
+++ b/popups/launcher/components/Emoji.qml
@@ -26,18 +26,18 @@ IComponent {
syncSelectionState();
return;
}
- selectedIndex = emojis.length > 0 ? 0 : -1;
+
+ selectedIndex = 0;
if (loader.item && loader.item.flickable)
loader.item.flickable.contentY = 0;
});
}
onSelectedIndexChanged: {
- if (!loader.view || !loader.item || !loader.item.flickable)
- return;
- if (selectedIndex < 0 || selectedIndex >= loader.view.count)
- return;
Qt.callLater(() => {
+ if (!loader.view || selectedIndex < 0 || selectedIndex >= loader.view.count)
+ return;
+
syncSelectionState();
loader.view.currentIndex = selectedIndex;
loader.view.positionViewAtIndex(selectedIndex, GridView.Contain);
@@ -91,7 +91,12 @@ IComponent {
}
syncSelectionState: function () {
- Qt.callLater(() => state.selected = loader.view.itemAtIndex(selectedIndex));
+ Qt.callLater(() => {
+ if (!loader.view || selectedIndex < 0 || selectedIndex >= loader.view.count)
+ return;
+
+ state.selected = loader.view.itemAtIndex(selectedIndex);
+ });
}
IInnerComponent {
diff --git a/popups/launcher/components/Spell.qml b/popups/launcher/components/Spell.qml
index cfe315f..b0ccd8f 100644
--- a/popups/launcher/components/Spell.qml
+++ b/popups/launcher/components/Spell.qml
@@ -39,11 +39,10 @@ IComponent {
}
onSelectedIndexChanged: {
- if (!loader.view || !loader.item || !loader.item.flickable)
- return;
- if (selectedIndex < 0 || selectedIndex >= loader.view.count)
- return;
Qt.callLater(() => {
+ if (!loader.view || selectedIndex < 0 || selectedIndex >= loader.view.count)
+ return;
+
syncSelectionState();
loader.view.currentIndex = selectedIndex;
loader.view.positionViewAtIndex(selectedIndex, GridView.Contain);
@@ -115,7 +114,12 @@ IComponent {
}
syncSelectionState: function () {
- Qt.callLater(() => state.selected = loader.view.itemAtIndex(selectedIndex));
+ Qt.callLater(() => {
+ if (!loader.view || selectedIndex < 0 || selectedIndex >= loader.view.count)
+ return;
+
+ state.selected = loader.view.itemAtIndex(selectedIndex);
+ });
}
IInnerComponent {