From e5e53c02b5e6874169bafbf84ea1c6242e365a75 Mon Sep 17 00:00:00 2001 From: Ashutosh0x Date: Sat, 17 Jan 2026 13:22:04 +0530 Subject: [PATCH] Fix: Allow comma and semicolon in hotkey config (#7130) --- src/lib/gui/KeySequence.cpp | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/src/lib/gui/KeySequence.cpp b/src/lib/gui/KeySequence.cpp index e3fd5ccfe..f6c267976 100644 --- a/src/lib/gui/KeySequence.cpp +++ b/src/lib/gui/KeySequence.cpp @@ -62,6 +62,8 @@ static const struct {Qt::Key_Launch0, "AppUser1"}, {Qt::Key_Launch1, "AppUser2"}, {Qt::Key_Select, "Select"}, + {Qt::Key_Comma, "Comma"}, + {Qt::Key_Semicolon, "Semicolon"}, {0, nullptr} }; @@ -189,15 +191,7 @@ QString KeySequence::keyToString(int key) // for keypad keys instead) key &= ~Qt::KeypadModifier; - // a printable 7 bit character? - if (key < 0x80 && key != Qt::Key_Space) - return QChar(key & 0x7f).toLower(); - - // a function key? - if (key >= Qt::Key_F1 && key <= Qt::Key_F35) - return QString::fromUtf8("F%1").arg(key - Qt::Key_F1 + 1); - - // a special key? + // a special key? (check before printable to handle comma/semicolon) int i = 0; while (keyname[i].name) { if (key == keyname[i].key) @@ -205,6 +199,14 @@ QString KeySequence::keyToString(int key) i++; } + // a printable 7 bit character? + if (key < 0x80) + return QChar(key & 0x7f).toLower(); + + // a function key? + if (key >= Qt::Key_F1 && key <= Qt::Key_F35) + return QString::fromUtf8("F%1").arg(key - Qt::Key_F1 + 1); + // representable in ucs2? if (key < 0x10000) { #if QT_VERSION >= QT_VERSION_CHECK(6, 9, 0)