summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/cocoa/qcocoanativeinterface.mm
diff options
context:
space:
mode:
authorMorten Johan Sørvig <morten.sorvig@digia.com>2013-01-24 11:24:00 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-03-26 19:22:01 +0100
commit03d057ff01332333b98f5298c3d0bd85b5604ac9 (patch)
tree2f0922111950af7e5335f48dbc6e3ae58d2522b9 /src/plugins/platforms/cocoa/qcocoanativeinterface.mm
parentb2c73c73cd0a68aae0586cf447c2612c13aeb52c (diff)
Cocoa: Make touch events work again.
Bring back the ref-counted enable on enter/leave workaround we had in Qt 4: If any widget in a window sets WA_AcceptTouchEvents then that window will start processing touch events. Enabling touch events has implications for delivery of other events, for example by causing scrolling event lag. Change-Id: I307488937f417612eff624bf9892b82a7f69c1b7 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Diffstat (limited to 'src/plugins/platforms/cocoa/qcocoanativeinterface.mm')
-rw-r--r--src/plugins/platforms/cocoa/qcocoanativeinterface.mm9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/plugins/platforms/cocoa/qcocoanativeinterface.mm b/src/plugins/platforms/cocoa/qcocoanativeinterface.mm
index a7f4d3b823..ededb63487 100644
--- a/src/plugins/platforms/cocoa/qcocoanativeinterface.mm
+++ b/src/plugins/platforms/cocoa/qcocoanativeinterface.mm
@@ -119,6 +119,8 @@ QPlatformNativeInterface::NativeResourceForIntegrationFunction QCocoaNativeInter
return NativeResourceForIntegrationFunction(QCocoaNativeInterface::cgImageToQImage);
if (resource.toLower() == "setwindowcontentview")
return NativeResourceForIntegrationFunction(QCocoaNativeInterface::setWindowContentView);
+ if (resource.toLower() == "registertouchwindow")
+ return NativeResourceForIntegrationFunction(QCocoaNativeInterface::registerTouchWindow);
return 0;
}
@@ -227,4 +229,11 @@ void QCocoaNativeInterface::setWindowContentView(QPlatformWindow *window, void *
cocoaPlatformWindow->setContentView(reinterpret_cast<NSView *>(contentView));
}
+void QCocoaNativeInterface::registerTouchWindow(QWindow *window, bool enable)
+{
+ QCocoaWindow *cocoaWindow = static_cast<QCocoaWindow *>(window->handle());
+ if (cocoaWindow)
+ cocoaWindow->registerTouch(enable);
+}
+
QT_END_NAMESPACE