From 1a78ef09b93b0a7337075555dc91032f39fab2a9 Mon Sep 17 00:00:00 2001 From: Timur Pocheptsov Date: Fri, 7 Oct 2016 14:13:00 +0000 Subject: Revert "QCocoaKeyMapper - correctly update key layouts" MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 26961e32f34c06f083fe441c23be6874f03446a3. This patch was apparently a bit ill-considered and while fixed one problem introduced others. Task-number: QTBUG-50865 Change-Id: I2e3569d16c8fc47b4a492d4aed6e747d7ff93a55 Reviewed-by: Morten Johan Sørvig --- src/plugins/platforms/cocoa/qcocoakeymapper.mm | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) (limited to 'src/plugins/platforms/cocoa') diff --git a/src/plugins/platforms/cocoa/qcocoakeymapper.mm b/src/plugins/platforms/cocoa/qcocoakeymapper.mm index ebe547f64b..250f3f3bf7 100644 --- a/src/plugins/platforms/cocoa/qcocoakeymapper.mm +++ b/src/plugins/platforms/cocoa/qcocoakeymapper.mm @@ -390,11 +390,6 @@ bool QCocoaKeyMapper::updateKeyboard() keyboardInputLocale = QLocale::c(); keyboardInputDirection = Qt::LeftToRight; } - - const auto newMode = keyboard_mode; - deleteLayouts(); - keyboard_mode = newMode; - return true; } @@ -417,8 +412,10 @@ void QCocoaKeyMapper::clearMappings() void QCocoaKeyMapper::updateKeyMap(unsigned short macVirtualKey, QChar unicodeKey) { - updateKeyboard(); - + if (updateKeyboard()) { + // ### Qt 4 did this: + // QKeyMapper::changeKeyboard(); + } if (keyLayout[macVirtualKey]) return; @@ -474,8 +471,9 @@ QList QCocoaKeyMapper::possibleKeys(const QKeyEvent *event) const for (int i = 1; i < 8; ++i) { Qt::KeyboardModifiers neededMods = ModsTbl[i]; int key = kbItem->qtKey[i]; - if (key && key != baseKey && ((keyMods & neededMods) == neededMods)) - ret << int(key + neededMods); + if (key && key != baseKey && ((keyMods & neededMods) == neededMods)) { + ret << int(key + (keyMods & ~neededMods)); + } } return ret; } -- cgit v1.2.3