diff options
author | Morten Johan Sørvig <morten.sorvig@digia.com> | 2014-01-20 09:21:25 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2014-02-08 23:04:16 +0100 |
commit | daf4e1e140f69a4372ca3815a98962f15c34ebab (patch) | |
tree | 7f69ced720a9e5274221cc5d1da69316b6261376 /src/plugins | |
parent | c0241d982bb2b7469285116fa863dcf8aebb9edf (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.mm | 3 | ||||
-rw-r--r-- | src/plugins/platforms/cocoa/qcocoainputcontext.mm | 12 | ||||
-rw-r--r-- | src/plugins/platforms/cocoa/qcocoawindow.h | 2 | ||||
-rw-r--r-- | src/plugins/platforms/cocoa/qcocoawindow.mm | 10 |
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; |