diff options
author | Andy Shaw <andy.shaw@qt.io> | 2017-01-10 10:56:34 +0100 |
---|---|---|
committer | Andy Shaw <andy.shaw@qt.io> | 2017-01-10 15:49:33 +0000 |
commit | 25b00c88b6fda2eecd9ff566ab44974136dabf51 (patch) | |
tree | 07da56c1219cbbcd72865b1463c7d59ff24ac706 /src/plugins | |
parent | 2005b9fae12b19a4d087035789fa3bc9730d303a (diff) |
cocoa: Account for getting a keyboard using input methods correctly
When a keyboard is using an input method then the layout for it needs to
be retrieved with TISCopyInputMethodKeyboardLayoutOverride(). For cases
where it is not using an input method this will return null and in that
case we can use the original approach as before.
Task-number: QTBUG-53804
Task-number: QTBUG-57934
Change-Id: I6283785bf002602113e208bb38d5eb2a9a7ceb36
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Diffstat (limited to 'src/plugins')
-rw-r--r-- | src/plugins/platforms/cocoa/qcocoakeymapper.mm | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/plugins/platforms/cocoa/qcocoakeymapper.mm b/src/plugins/platforms/cocoa/qcocoakeymapper.mm index e7952ae1f6..1ef7f11011 100644 --- a/src/plugins/platforms/cocoa/qcocoakeymapper.mm +++ b/src/plugins/platforms/cocoa/qcocoakeymapper.mm @@ -366,7 +366,9 @@ Qt::KeyboardModifiers QCocoaKeyMapper::queryKeyboardModifiers() bool QCocoaKeyMapper::updateKeyboard() { const UCKeyboardLayout *uchrData = 0; - QCFType<TISInputSourceRef> source = TISCopyCurrentKeyboardInputSource(); + QCFType<TISInputSourceRef> source = TISCopyInputMethodKeyboardLayoutOverride(); + if (!source) + source = TISCopyCurrentKeyboardInputSource(); if (keyboard_mode != NullMode && source == currentInputSource) { return false; } |