diff options
author | Timur Pocheptsov <timur.pocheptsov@qt.io> | 2018-09-20 13:22:09 +0200 |
---|---|---|
committer | Timur Pocheptsov <timur.pocheptsov@qt.io> | 2018-09-24 17:01:08 +0000 |
commit | 2e94947c5602800b540fdabbb9c058a63f13e9d0 (patch) | |
tree | 16e1ad093e1a5f3d59194783dd4d70731495eced | |
parent | f30bf5fbd58c3fd67a98a1c759b63f24fbab8a41 (diff) |
qnsview_key/qnsview_mouse make Ctrl+left click work again
A result of typo/incorrect keyboard modifiers extracted +
wrong button sent via QWindowSystemInterface::handleMouseEvent.
Task-number: QTBUG-70512
Change-Id: I809168e363496884312412051e8d435f5794b3be
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
-rw-r--r-- | src/plugins/platforms/cocoa/qnsview_keys.mm | 2 | ||||
-rw-r--r-- | src/plugins/platforms/cocoa/qnsview_mouse.mm | 10 |
2 files changed, 8 insertions, 4 deletions
diff --git a/src/plugins/platforms/cocoa/qnsview_keys.mm b/src/plugins/platforms/cocoa/qnsview_keys.mm index 85c0607265..28db532ddc 100644 --- a/src/plugins/platforms/cocoa/qnsview_keys.mm +++ b/src/plugins/platforms/cocoa/qnsview_keys.mm @@ -47,7 +47,7 @@ Qt::KeyboardModifiers qtMods =Qt::NoModifier; if (modifierFlags & NSEventModifierFlagShift) qtMods |= Qt::ShiftModifier; - if (modifierFlags & NSEventModifierFlagShift) + if (modifierFlags & NSEventModifierFlagControl) qtMods |= dontSwapCtrlAndMeta ? Qt::ControlModifier : Qt::MetaModifier; if (modifierFlags & NSEventModifierFlagOption) qtMods |= Qt::AltModifier; diff --git a/src/plugins/platforms/cocoa/qnsview_mouse.mm b/src/plugins/platforms/cocoa/qnsview_mouse.mm index 468f26ffb4..3d6471005d 100644 --- a/src/plugins/platforms/cocoa/qnsview_mouse.mm +++ b/src/plugins/platforms/cocoa/qnsview_mouse.mm @@ -198,7 +198,9 @@ const auto modifiers = [QNSView convertKeyModifiers:theEvent.modifierFlags]; const auto buttons = currentlyPressedMouseButtons(); - const auto button = cocoaButton2QtButton(theEvent); + auto button = cocoaButton2QtButton(theEvent); + if (button == Qt::LeftButton && m_sendUpAsRightButton) + button = Qt::RightButton; const auto eventType = cocoaEvent2QtMouseEvent(theEvent); QWindowSystemInterface::handleMouseEvent(targetView->m_platformWindow->window(), @@ -266,12 +268,14 @@ if (m_sendUpAsRightButton && button == Qt::LeftButton) button = Qt::RightButton; - if (button == Qt::RightButton) - m_sendUpAsRightButton = false; m_buttons &= ~button; [self handleMouseEvent:theEvent]; + + if (button == Qt::RightButton) + m_sendUpAsRightButton = false; + return true; } |