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;
|
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:
|
default:
|
||||||
// see if we can handle this key, if not, don't accept it
|
// see if we can handle this key, if not, don't accept it
|
||||||
if (keyToString(key).isEmpty())
|
if (keyToString(key).isEmpty())
|
||||||
|
@ -210,6 +223,9 @@ QString KeySequence::keyToString(int key)
|
||||||
if (key & Qt::MetaModifier)
|
if (key & Qt::MetaModifier)
|
||||||
return "Meta";
|
return "Meta";
|
||||||
|
|
||||||
|
if (key & GraveModifier)
|
||||||
|
return "Grave";
|
||||||
|
|
||||||
// treat key pad like normal keys (FIXME: we should have another lookup table for keypad keys instead)
|
// treat key pad like normal keys (FIXME: we should have another lookup table for keypad keys instead)
|
||||||
key &= ~Qt::KeypadModifier;
|
key &= ~Qt::KeypadModifier;
|
||||||
|
|
||||||
|
|
|
@ -25,6 +25,9 @@
|
||||||
|
|
||||||
class QSettings;
|
class QSettings;
|
||||||
|
|
||||||
|
// Custom modifier for grave key (not supported by Qt)
|
||||||
|
static const int GraveModifier = 0x20000000;
|
||||||
|
|
||||||
class KeySequence
|
class KeySequence
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|
|
@ -209,6 +209,7 @@ const KeyModifierNameMapEntry kModifierNameMap[] = {
|
||||||
{ "AltGr", KeyModifierAltGr },
|
{ "AltGr", KeyModifierAltGr },
|
||||||
// { "CapsLock", KeyModifierCapsLock },
|
// { "CapsLock", KeyModifierCapsLock },
|
||||||
{ "Control", KeyModifierControl },
|
{ "Control", KeyModifierControl },
|
||||||
|
{ "Grave", KeyModifierGrave },
|
||||||
{ "Meta", KeyModifierMeta },
|
{ "Meta", KeyModifierMeta },
|
||||||
// { "NumLock", KeyModifierNumLock },
|
// { "NumLock", KeyModifierNumLock },
|
||||||
// { "ScrollLock", KeyModifierScrollLock },
|
// { "ScrollLock", KeyModifierScrollLock },
|
||||||
|
|
|
@ -58,6 +58,7 @@ static const KeyModifierMask KeyModifierMeta = 0x0008;
|
||||||
static const KeyModifierMask KeyModifierSuper = 0x0010;
|
static const KeyModifierMask KeyModifierSuper = 0x0010;
|
||||||
static const KeyModifierMask KeyModifierAltGr = 0x0020;
|
static const KeyModifierMask KeyModifierAltGr = 0x0020;
|
||||||
static const KeyModifierMask KeyModifierLevel5Lock = 0x0040;
|
static const KeyModifierMask KeyModifierLevel5Lock = 0x0040;
|
||||||
|
static const KeyModifierMask KeyModifierGrave = 0x0080;
|
||||||
static const KeyModifierMask KeyModifierCapsLock = 0x1000;
|
static const KeyModifierMask KeyModifierCapsLock = 0x1000;
|
||||||
static const KeyModifierMask KeyModifierNumLock = 0x2000;
|
static const KeyModifierMask KeyModifierNumLock = 0x2000;
|
||||||
static const KeyModifierMask KeyModifierScrollLock = 0x4000;
|
static const KeyModifierMask KeyModifierScrollLock = 0x4000;
|
||||||
|
@ -73,6 +74,7 @@ static const UInt32 kKeyModifierBitMeta = 3;
|
||||||
static const UInt32 kKeyModifierBitSuper = 4;
|
static const UInt32 kKeyModifierBitSuper = 4;
|
||||||
static const UInt32 kKeyModifierBitAltGr = 5;
|
static const UInt32 kKeyModifierBitAltGr = 5;
|
||||||
static const UInt32 kKeyModifierBitLevel5Lock = 6;
|
static const UInt32 kKeyModifierBitLevel5Lock = 6;
|
||||||
|
static const UInt32 kKeyModifierBitGrave = 7;
|
||||||
static const UInt32 kKeyModifierBitCapsLock = 12;
|
static const UInt32 kKeyModifierBitCapsLock = 12;
|
||||||
static const UInt32 kKeyModifierBitNumLock = 13;
|
static const UInt32 kKeyModifierBitNumLock = 13;
|
||||||
static const UInt32 kKeyModifierBitScrollLock = 14;
|
static const UInt32 kKeyModifierBitScrollLock = 14;
|
||||||
|
@ -88,7 +90,8 @@ static const KeyModifierID kKeyModifierIDAlt = 3;
|
||||||
static const KeyModifierID kKeyModifierIDMeta = 4;
|
static const KeyModifierID kKeyModifierIDMeta = 4;
|
||||||
static const KeyModifierID kKeyModifierIDSuper = 5;
|
static const KeyModifierID kKeyModifierIDSuper = 5;
|
||||||
static const KeyModifierID kKeyModifierIDAltGr = 6;
|
static const KeyModifierID kKeyModifierIDAltGr = 6;
|
||||||
static const KeyModifierID kKeyModifierIDLast = 7;
|
static const KeyModifierID kKeyModifierIDGrave = 7;
|
||||||
|
static const KeyModifierID kKeyModifierIDLast = 8;
|
||||||
//@}
|
//@}
|
||||||
|
|
||||||
//! @name Key identifiers
|
//! @name Key identifiers
|
||||||
|
|
Loading…
Reference in New Issue