summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/plugins/platforms/cocoa/qcocoakeymapper.mm35
1 files changed, 12 insertions, 23 deletions
diff --git a/src/plugins/platforms/cocoa/qcocoakeymapper.mm b/src/plugins/platforms/cocoa/qcocoakeymapper.mm
index 97f1df151b..2cb2fd0255 100644
--- a/src/plugins/platforms/cocoa/qcocoakeymapper.mm
+++ b/src/plugins/platforms/cocoa/qcocoakeymapper.mm
@@ -84,34 +84,23 @@ Qt::KeyboardModifiers QCocoaKeyMapper::fromCocoaModifiers(NSEventModifierFlags c
return swapModifiersIfNeeded(qtModifiers);
}
-static constexpr std::tuple<int, Qt::KeyboardModifier> carbonModifierMap[] = {
- { shiftKey, Qt::ShiftModifier },
- { rightShiftKey, Qt::ShiftModifier },
- { controlKey, Qt::ControlModifier },
- { rightControlKey, Qt::ControlModifier },
- { cmdKey, Qt::MetaModifier },
- { optionKey, Qt::AltModifier },
- { rightOptionKey, Qt::AltModifier },
- { kEventKeyModifierNumLockMask, Qt::KeypadModifier }
-};
-
using CarbonModifiers = UInt32; // As opposed to EventModifiers which is UInt16
-Qt::KeyboardModifiers fromCarbonModifiers(CarbonModifiers carbonModifiers)
-{
- Qt::KeyboardModifiers qtModifiers = Qt::NoModifier;
- for (const auto &[carbonModifier, qtModifier] : carbonModifierMap) {
- if (carbonModifiers & carbonModifier)
- qtModifiers |= qtModifier;
- }
-
- return swapModifiersIfNeeded(qtModifiers);
-}
-
static CarbonModifiers toCarbonModifiers(Qt::KeyboardModifiers qtModifiers)
{
qtModifiers = swapModifiersIfNeeded(qtModifiers);
+ static constexpr std::tuple<int, Qt::KeyboardModifier> carbonModifierMap[] = {
+ { shiftKey, Qt::ShiftModifier },
+ { rightShiftKey, Qt::ShiftModifier },
+ { controlKey, Qt::ControlModifier },
+ { rightControlKey, Qt::ControlModifier },
+ { cmdKey, Qt::MetaModifier },
+ { optionKey, Qt::AltModifier },
+ { rightOptionKey, Qt::AltModifier },
+ { kEventKeyModifierNumLockMask, Qt::KeypadModifier }
+ };
+
CarbonModifiers carbonModifiers = 0;
for (const auto &[carbonModifier, qtModifier] : carbonModifierMap) {
if (qtModifiers & qtModifier)
@@ -394,7 +383,7 @@ QCocoaKeyMapper::~QCocoaKeyMapper()
Qt::KeyboardModifiers QCocoaKeyMapper::queryKeyboardModifiers()
{
- return fromCarbonModifiers(GetCurrentKeyModifiers());
+ return fromCocoaModifiers(NSEvent.modifierFlags);
}
bool QCocoaKeyMapper::updateKeyboard()