summaryrefslogtreecommitdiffstats
path: root/src/plugins
diff options
context:
space:
mode:
authorMorten Johan Sørvig <morten.sorvig@digia.com>2014-01-20 09:21:25 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-02-08 23:04:16 +0100
commitdaf4e1e140f69a4372ca3815a98962f15c34ebab (patch)
tree7f69ced720a9e5274221cc5d1da69316b6261376 /src/plugins
parentc0241d982bb2b7469285116fa863dcf8aebb9edf (diff)
Cocoa: Simplify native view access.
Use NSWindow and NSView accessors on QCocoaWindow instead of QGuiApplication and nativeResourceForWindow. Change-Id: Iabee1e42dd119726d932f89c66a90810463d70db Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Diffstat (limited to 'src/plugins')
-rw-r--r--src/plugins/platforms/cocoa/qcocoaeventdispatcher.mm3
-rw-r--r--src/plugins/platforms/cocoa/qcocoainputcontext.mm12
-rw-r--r--src/plugins/platforms/cocoa/qcocoawindow.h2
-rw-r--r--src/plugins/platforms/cocoa/qcocoawindow.mm10
4 files changed, 20 insertions, 7 deletions
diff --git a/src/plugins/platforms/cocoa/qcocoaeventdispatcher.mm b/src/plugins/platforms/cocoa/qcocoaeventdispatcher.mm
index df09d899a7..29eed73535 100644
--- a/src/plugins/platforms/cocoa/qcocoaeventdispatcher.mm
+++ b/src/plugins/platforms/cocoa/qcocoaeventdispatcher.mm
@@ -75,6 +75,7 @@
#include "qcocoaeventdispatcher.h"
#include "qcocoaautoreleasepool.h"
+#include "qcocoawindow.h"
#include "qcocoahelpers.h"
#include "qguiapplication.h"
@@ -621,7 +622,7 @@ NSModalSession QCocoaEventDispatcherPrivate::currentModalSession()
if (!info.session) {
QCocoaAutoReleasePool pool;
- NSWindow *nswindow = static_cast<NSWindow *>(QGuiApplication::platformNativeInterface()->nativeResourceForWindow("nswindow", info.window));
+ NSWindow *nswindow = static_cast<QCocoaWindow *>(info.window->handle())->nativeWindow();
if (!nswindow)
continue;
diff --git a/src/plugins/platforms/cocoa/qcocoainputcontext.mm b/src/plugins/platforms/cocoa/qcocoainputcontext.mm
index 79b1c0856f..f119699004 100644
--- a/src/plugins/platforms/cocoa/qcocoainputcontext.mm
+++ b/src/plugins/platforms/cocoa/qcocoainputcontext.mm
@@ -43,6 +43,7 @@
#include "qcocoainputcontext.h"
#include "qcocoanativeinterface.h"
#include "qcocoaautoreleasepool.h"
+#include "qcocoawindow.h"
#include <QtCore/QRect>
#include <QtGui/QGuiApplication>
@@ -98,13 +99,12 @@ void QCocoaInputContext::reset()
{
QPlatformInputContext::reset();
- if (!mWindow) return;
+ if (!mWindow)
+ return;
- QCocoaNativeInterface *nativeInterface = qobject_cast<QCocoaNativeInterface *>(QGuiApplication::platformNativeInterface());
- if (!nativeInterface) return;
-
- QNSView *view = static_cast<QNSView *>(nativeInterface->nativeResourceForWindow("nsview", mWindow));
- if (!view) return;
+ QNSView *view = static_cast<QCocoaWindow *>(mWindow->handle())->qtView();
+ if (!view)
+ return;
QCocoaAutoReleasePool pool;
NSInputManager *currentIManager = [NSInputManager currentInputManager];
diff --git a/src/plugins/platforms/cocoa/qcocoawindow.h b/src/plugins/platforms/cocoa/qcocoawindow.h
index 9fbd10dea5..d1de38c997 100644
--- a/src/plugins/platforms/cocoa/qcocoawindow.h
+++ b/src/plugins/platforms/cocoa/qcocoawindow.h
@@ -129,6 +129,8 @@ public:
NSView *contentView() const;
void setContentView(NSView *contentView);
+ QNSView *qtView() const;
+ NSWindow *nativeWindow() const;
void setEmbeddedInForeignView(bool subwindow);
diff --git a/src/plugins/platforms/cocoa/qcocoawindow.mm b/src/plugins/platforms/cocoa/qcocoawindow.mm
index b1a230479e..ce1e856bfc 100644
--- a/src/plugins/platforms/cocoa/qcocoawindow.mm
+++ b/src/plugins/platforms/cocoa/qcocoawindow.mm
@@ -947,6 +947,16 @@ void QCocoaWindow::setContentView(NSView *contentView)
recreateWindow(parent()); // Adds the content view to parent NSView
}
+QNSView *QCocoaWindow::qtView() const
+{
+ return m_qtView;
+}
+
+NSWindow *QCocoaWindow::nativeWindow() const
+{
+ return m_nsWindow;
+}
+
void QCocoaWindow::setEmbeddedInForeignView(bool embedded)
{
m_contentViewIsToBeEmbedded = embedded;