macOS: Pass on native virtual key (key code) for modifier keys

Regression after f563203f60. 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>
bb10
Tor Arne Vestbø 2022-09-30 16:24:51 +02:00
parent 7c43feb456
commit 3b22e6a8e0
1 changed files with 8 additions and 1 deletions

View File

@ -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;