diff options
author | Timur Pocheptsov <timur.pocheptsov@qt.io> | 2016-11-02 14:19:26 +0100 |
---|---|---|
committer | Ulf Hermann <ulf.hermann@qt.io> | 2018-10-04 07:00:39 +0000 |
commit | 0cae5a4c4b3c508463580ba740df95e92d2fc9c0 (patch) | |
tree | 38c5cb94b7f4175f17e49eb58ebd7b5d4b19b647 /src/plugins/platforms/cocoa/qcocoakeymapper.mm | |
parent | 28c831fa13db29bd06666abefcb76f5bdf886320 (diff) |
Cocoa integration: fix incorrect keyboard mapping
When switching between different input sources, we have to update layouts.
Task-number: QTBUG-50865
Change-Id: I0c23c19b79a2102dcc533822b0f861c387582c6c
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
Diffstat (limited to 'src/plugins/platforms/cocoa/qcocoakeymapper.mm')
-rw-r--r-- | src/plugins/platforms/cocoa/qcocoakeymapper.mm | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/plugins/platforms/cocoa/qcocoakeymapper.mm b/src/plugins/platforms/cocoa/qcocoakeymapper.mm index c18b7d6bc0..350ae4b9be 100644 --- a/src/plugins/platforms/cocoa/qcocoakeymapper.mm +++ b/src/plugins/platforms/cocoa/qcocoakeymapper.mm @@ -378,6 +378,10 @@ bool QCocoaKeyMapper::updateKeyboard() currentInputSource = source; keyboard_dead = 0; + const auto newMode = keyboard_mode; + deleteLayouts(); + keyboard_mode = newMode; + return true; } @@ -400,10 +404,8 @@ void QCocoaKeyMapper::clearMappings() void QCocoaKeyMapper::updateKeyMap(unsigned short macVirtualKey, QChar unicodeKey) { - if (updateKeyboard()) { - // ### Qt 4 did this: - // QKeyMapper::changeKeyboard(); - } + updateKeyboard(); + if (keyLayout[macVirtualKey]) return; |