summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/cocoa
diff options
context:
space:
mode:
authorTimur Pocheptsov <timur.pocheptsov@qt.io>2018-09-20 13:22:09 +0200
committerTimur Pocheptsov <timur.pocheptsov@qt.io>2018-09-24 17:01:08 +0000
commit2e94947c5602800b540fdabbb9c058a63f13e9d0 (patch)
tree16e1ad093e1a5f3d59194783dd4d70731495eced /src/plugins/platforms/cocoa
parentf30bf5fbd58c3fd67a98a1c759b63f24fbab8a41 (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>
Diffstat (limited to 'src/plugins/platforms/cocoa')
-rw-r--r--src/plugins/platforms/cocoa/qnsview_keys.mm2
-rw-r--r--src/plugins/platforms/cocoa/qnsview_mouse.mm10
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;
}