Launcher: don't focus initial mouse position entry, only after mouse movement (fix #1359)

This commit is contained in:
Ly-sec
2026-01-12 14:11:40 +01:00
parent a3f32b33df
commit d1bc14ce39
+52 -3
View File
@@ -1177,12 +1177,36 @@ SmartPanel {
hoverEnabled: true
cursorShape: Qt.PointingHandCursor
enabled: !Settings.data.appLauncher.ignoreMouseInput
property real entryX: 0
property real entryY: 0
property bool capturingMovement: false
onEntered: {
if (!root.ignoreMouseHover) {
if (root.ignoreMouseHover) {
entryX = mouseX;
entryY = mouseY;
capturingMovement = true;
} else {
selectedIndex = index;
}
}
onPositionChanged: mouse => {
if (root.ignoreMouseHover && capturingMovement) {
if (Math.abs(mouse.x - entryX) > 5 || Math.abs(mouse.y - entryY) > 5) {
root.ignoreMouseHover = false;
capturingMovement = false;
selectedIndex = index;
}
} else if (!root.ignoreMouseHover && selectedIndex !== index) {
selectedIndex = index;
}
}
onClicked: mouse => {
root.ignoreMouseHover = false;
capturingMovement = false;
if (mouse.button === Qt.LeftButton) {
selectedIndex = index;
root.activate();
@@ -1547,11 +1571,36 @@ SmartPanel {
hoverEnabled: true
cursorShape: Qt.PointingHandCursor
enabled: !Settings.data.appLauncher.ignoreMouseInput
property real entryX: 0
property real entryY: 0
property bool capturingMovement: false
onEntered: {
root.ignoreMouseHover = false;
selectedIndex = index;
if (root.ignoreMouseHover) {
entryX = mouseX;
entryY = mouseY;
capturingMovement = true;
} else {
selectedIndex = index;
}
}
onPositionChanged: mouse => {
if (root.ignoreMouseHover && capturingMovement) {
if (Math.abs(mouse.x - entryX) > 5 || Math.abs(mouse.y - entryY) > 5) {
root.ignoreMouseHover = false;
capturingMovement = false;
selectedIndex = index;
}
} else if (!root.ignoreMouseHover && selectedIndex !== index) {
selectedIndex = index;
}
}
onClicked: mouse => {
root.ignoreMouseHover = false;
capturingMovement = false;
if (mouse.button === Qt.LeftButton) {
selectedIndex = index;
root.activate();