SessionMenu: fix key mapping

This commit is contained in:
Lysec
2026-02-09 14:44:34 +01:00
parent 63130b23c0
commit dc64edb12d
2 changed files with 7 additions and 108 deletions
-6
View File
@@ -516,12 +516,6 @@ PanelWindow {
onActivated: PanelService.openedPanel.onDownPressed()
}
Shortcut {
sequence: Settings.data.general.keybinds.keyEnter
enabled: root.isPanelOpen && (PanelService.openedPanel.onReturnPressed !== undefined) && !PanelService.isKeybindRecording
onActivated: PanelService.openedPanel.onReturnPressed()
}
Shortcut {
sequence: Settings.data.general.keybinds.keyEnter
enabled: root.isPanelOpen && (PanelService.openedPanel.onEnterPressed !== undefined) && !PanelService.isKeybindRecording
+7 -102
View File
@@ -392,6 +392,8 @@ SmartPanel {
keyName = "Space";
break;
case Qt.Key_Return:
keyName = "Return";
break;
case Qt.Key_Enter:
keyName = "Enter";
break;
@@ -515,9 +517,6 @@ SmartPanel {
function onDownPressed() {
handleDown();
}
function onReturnPressed() {
handleEnter();
}
function onEnterPressed() {
handleEnter();
}
@@ -530,111 +529,17 @@ SmartPanel {
function checkKeybind(event) {
if (powerOptions.length === 0)
return;
return false;
// Construct key string in the same format as the recorder
// Ignore modifier keys by themselves
if (event.key === Qt.Key_Control || event.key === Qt.Key_Shift || event.key === Qt.Key_Alt || event.key === Qt.Key_Meta) {
return;
}
let keyStr = "";
if (event.modifiers & Qt.ControlModifier)
keyStr += "Ctrl+";
if (event.modifiers & Qt.AltModifier)
keyStr += "Alt+";
if (event.modifiers & Qt.ShiftModifier)
keyStr += "Shift+";
let keyName = "";
let rawText = event.text;
if (event.key >= Qt.Key_A && event.key <= Qt.Key_Z || event.key >= Qt.Key_0 && event.key <= Qt.Key_9) {
keyName = String.fromCharCode(event.key);
} else if (event.key >= Qt.Key_F1 && event.key <= Qt.Key_F12) {
keyName = "F" + (event.key - Qt.Key_F1 + 1);
} else if (rawText && rawText.length > 0 && rawText.charCodeAt(0) > 31) {
keyName = rawText.toUpperCase();
// Handle shifted digits for common layouts (e.g., German, US)
if (event.modifiers & Qt.ShiftModifier) {
const shiftMap = {
"!": "1",
"\"": "2",
"§": "3",
"$": "4",
"%": "5",
"&": "6",
"/": "7",
"(": "8",
")": "9",
"=": "0",
"@": "2",
"#": "3",
"^": "6",
"*": "8"
};
if (shiftMap[keyName]) {
keyName = shiftMap[keyName];
}
}
} else {
switch (event.key) {
case Qt.Key_Escape:
keyName = "Esc";
break;
case Qt.Key_Space:
keyName = "Space";
break;
case Qt.Key_Return:
keyName = "Return";
break;
case Qt.Key_Enter:
keyName = "Enter";
break;
case Qt.Key_Tab:
keyName = "Tab";
break;
case Qt.Key_Backspace:
keyName = "Backspace";
break;
case Qt.Key_Delete:
keyName = "Del";
break;
case Qt.Key_Insert:
keyName = "Ins";
break;
case Qt.Key_Home:
keyName = "Home";
break;
case Qt.Key_End:
keyName = "End";
break;
case Qt.Key_PageUp:
keyName = "PgUp";
break;
case Qt.Key_PageDown:
keyName = "PgDn";
break;
case Qt.Key_Left:
keyName = "Left";
break;
case Qt.Key_Right:
keyName = "Right";
break;
case Qt.Key_Up:
keyName = "Up";
break;
case Qt.Key_Down:
keyName = "Down";
break;
}
}
if (!keyName)
return false;
}
const pressedKeybind = keyStr + keyName;
const pressedKeybind = getKeybindString(event);
if (!pressedKeybind)
return false;
for (var i = 0; i < powerOptions.length; i++) {
const option = powerOptions[i];