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
Change-Id: Id3679a468fbc609112bd8fb37aa7acc526492d19
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
(cherry picked from commit 3b22e6a8e07170a7a7280107d30ce86005523284)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
Tor Arne Vestbø 2022-09-30 16:24:51 +02:00 committed by Qt Cherry-pick Bot
parent e5d28032c0
commit 2cb798ec7b

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;