summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms
diff options
context:
space:
mode:
authorTor Arne Vestbø <tor.arne.vestbo@qt.io>2022-09-30 16:24:51 +0200
committerTor Arne Vestbø <tor.arne.vestbo@qt.io>2022-10-05 09:07:03 +0200
commit3b22e6a8e07170a7a7280107d30ce86005523284 (patch)
tree30c9eadd1b30d576e8e207825c13aa0f0fe22221 /src/plugins/platforms
parent7c43feb456968ebf22b305679b06e2502d23dc04 (diff)
macOS: Pass on native virtual key (key code) for modifier keys
Regression after f563203f60f2cb4d03650af3a357e988aa6bce32. Unlike the characters and charactersIgnoringModifiers properties, the keyCode property of an NSEventTypeFlagsChanged event can be read without causing an NSInternalInconsistencyException. Fixes: QTBUG-69608 Pick-to: 6.2 6.4 Change-Id: Id3679a468fbc609112bd8fb37aa7acc526492d19 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Diffstat (limited to 'src/plugins/platforms')
-rw-r--r--src/plugins/platforms/cocoa/qnsview_keys.mm9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/plugins/platforms/cocoa/qnsview_keys.mm b/src/plugins/platforms/cocoa/qnsview_keys.mm
index cf16cceb83..068635e20d 100644
--- a/src/plugins/platforms/cocoa/qnsview_keys.mm
+++ b/src/plugins/platforms/cocoa/qnsview_keys.mm
@@ -213,9 +213,16 @@ KeyEvent::KeyEvent(NSEvent *nsevent)
default: break; // Must be manually set
}
- if (nsevent.type == NSEventTypeKeyDown || nsevent.type == NSEventTypeKeyUp) {
+ switch (nsevent.type) {
+ case NSEventTypeKeyDown:
+ case NSEventTypeKeyUp:
+ case NSEventTypeFlagsChanged:
nativeVirtualKey = nsevent.keyCode;
+ default:
+ break;
+ }
+ if (nsevent.type == NSEventTypeKeyDown || nsevent.type == NSEventTypeKeyUp) {
NSString *charactersIgnoringModifiers = nsevent.charactersIgnoringModifiers;
NSString *characters = nsevent.characters;