Enhance grave modifier key support and fix missing key definitions
- Add missing grave key definitions in KeySequence class - Improve key type mapping for grave modifier - Ensure consistent grave modifier behavior across GUI and core 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
314f1070e5
commit
b8f917def2
|
@ -139,6 +139,19 @@ bool KeySequence::appendKey(int key, int modifiers)
|
|||
}
|
||||
break;
|
||||
|
||||
case Qt::Key_QuoteLeft:
|
||||
{
|
||||
printf("GRAVE DEBUG: Qt::Key_QuoteLeft detected in GUI\n");
|
||||
int mod = GraveModifier & (~m_Modifiers);
|
||||
if (mod)
|
||||
{
|
||||
printf("GRAVE DEBUG: Adding GraveModifier to sequence: %08x\n", mod);
|
||||
m_Sequence.append(mod);
|
||||
m_Modifiers |= mod;
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
// see if we can handle this key, if not, don't accept it
|
||||
if (keyToString(key).isEmpty())
|
||||
|
@ -210,6 +223,9 @@ QString KeySequence::keyToString(int key)
|
|||
if (key & Qt::MetaModifier)
|
||||
return "Meta";
|
||||
|
||||
if (key & GraveModifier)
|
||||
return "Grave";
|
||||
|
||||
// treat key pad like normal keys (FIXME: we should have another lookup table for keypad keys instead)
|
||||
key &= ~Qt::KeypadModifier;
|
||||
|
||||
|
|
|
@ -25,6 +25,9 @@
|
|||
|
||||
class QSettings;
|
||||
|
||||
// Custom modifier for grave key (not supported by Qt)
|
||||
static const int GraveModifier = 0x20000000;
|
||||
|
||||
class KeySequence
|
||||
{
|
||||
public:
|
||||
|
|
|
@ -209,6 +209,7 @@ const KeyModifierNameMapEntry kModifierNameMap[] = {
|
|||
{ "AltGr", KeyModifierAltGr },
|
||||
// { "CapsLock", KeyModifierCapsLock },
|
||||
{ "Control", KeyModifierControl },
|
||||
{ "Grave", KeyModifierGrave },
|
||||
{ "Meta", KeyModifierMeta },
|
||||
// { "NumLock", KeyModifierNumLock },
|
||||
// { "ScrollLock", KeyModifierScrollLock },
|
||||
|
|
|
@ -58,6 +58,7 @@ static const KeyModifierMask KeyModifierMeta = 0x0008;
|
|||
static const KeyModifierMask KeyModifierSuper = 0x0010;
|
||||
static const KeyModifierMask KeyModifierAltGr = 0x0020;
|
||||
static const KeyModifierMask KeyModifierLevel5Lock = 0x0040;
|
||||
static const KeyModifierMask KeyModifierGrave = 0x0080;
|
||||
static const KeyModifierMask KeyModifierCapsLock = 0x1000;
|
||||
static const KeyModifierMask KeyModifierNumLock = 0x2000;
|
||||
static const KeyModifierMask KeyModifierScrollLock = 0x4000;
|
||||
|
@ -73,6 +74,7 @@ static const UInt32 kKeyModifierBitMeta = 3;
|
|||
static const UInt32 kKeyModifierBitSuper = 4;
|
||||
static const UInt32 kKeyModifierBitAltGr = 5;
|
||||
static const UInt32 kKeyModifierBitLevel5Lock = 6;
|
||||
static const UInt32 kKeyModifierBitGrave = 7;
|
||||
static const UInt32 kKeyModifierBitCapsLock = 12;
|
||||
static const UInt32 kKeyModifierBitNumLock = 13;
|
||||
static const UInt32 kKeyModifierBitScrollLock = 14;
|
||||
|
@ -88,7 +90,8 @@ static const KeyModifierID kKeyModifierIDAlt = 3;
|
|||
static const KeyModifierID kKeyModifierIDMeta = 4;
|
||||
static const KeyModifierID kKeyModifierIDSuper = 5;
|
||||
static const KeyModifierID kKeyModifierIDAltGr = 6;
|
||||
static const KeyModifierID kKeyModifierIDLast = 7;
|
||||
static const KeyModifierID kKeyModifierIDGrave = 7;
|
||||
static const KeyModifierID kKeyModifierIDLast = 8;
|
||||
//@}
|
||||
|
||||
//! @name Key identifiers
|
||||
|
|
Loading…
Reference in New Issue