diff options
Diffstat (limited to 'src/plugins/platforms/ios')
-rw-r--r-- | src/plugins/platforms/ios/qiosintegration.h | 1 | ||||
-rw-r--r-- | src/plugins/platforms/ios/qiosintegration.mm | 5 | ||||
-rw-r--r-- | src/plugins/platforms/ios/qiosviewcontroller.mm | 4 | ||||
-rw-r--r-- | src/plugins/platforms/ios/qioswindow.h | 6 | ||||
-rw-r--r-- | src/plugins/platforms/ios/qioswindow.mm | 6 |
5 files changed, 14 insertions, 8 deletions
diff --git a/src/plugins/platforms/ios/qiosintegration.h b/src/plugins/platforms/ios/qiosintegration.h index 329a0a3d9b..c352e0f2d2 100644 --- a/src/plugins/platforms/ios/qiosintegration.h +++ b/src/plugins/platforms/ios/qiosintegration.h @@ -52,7 +52,6 @@ class QIOSIntegration : public QPlatformIntegration, public QPlatformNativeInter { public: QIOSIntegration(); - ~QIOSIntegration(); bool hasCapability(Capability cap) const; diff --git a/src/plugins/platforms/ios/qiosintegration.mm b/src/plugins/platforms/ios/qiosintegration.mm index c7541c3e38..61fd1c3d60 100644 --- a/src/plugins/platforms/ios/qiosintegration.mm +++ b/src/plugins/platforms/ios/qiosintegration.mm @@ -79,11 +79,6 @@ QIOSIntegration::QIOSIntegration() QWindowSystemInterface::registerTouchDevice(m_touchDevice); } -QIOSIntegration::~QIOSIntegration() -{ - delete m_touchDevice; -} - bool QIOSIntegration::hasCapability(Capability cap) const { switch (cap) { diff --git a/src/plugins/platforms/ios/qiosviewcontroller.mm b/src/plugins/platforms/ios/qiosviewcontroller.mm index 404b213966..9d3447a2e4 100644 --- a/src/plugins/platforms/ios/qiosviewcontroller.mm +++ b/src/plugins/platforms/ios/qiosviewcontroller.mm @@ -78,6 +78,10 @@ - (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration { Q_UNUSED(duration); + + if (!QCoreApplication::instance()) + return; // FIXME: Store orientation for later (?) + Qt::ScreenOrientation orientation = toQtScreenOrientation(UIDeviceOrientation(toInterfaceOrientation)); if (orientation == -1) return; diff --git a/src/plugins/platforms/ios/qioswindow.h b/src/plugins/platforms/ios/qioswindow.h index cefb6f9388..b86dbf7d46 100644 --- a/src/plugins/platforms/ios/qioswindow.h +++ b/src/plugins/platforms/ios/qioswindow.h @@ -77,6 +77,9 @@ public: int effectiveWidth() const; int effectiveHeight() const; + bool setMouseGrabEnabled(bool grab) { return grab; } + bool setKeyboardGrabEnabled(bool grab) { return grab; } + WId winId() const { return WId(m_view); }; QList<QWindowSystemInterface::TouchPoint> &touchPoints() { return m_touchPoints; } @@ -96,6 +99,9 @@ private: void raiseOrLower(bool raise); void updateWindowLevel(); bool blockedByModal(); + + inline Qt::WindowType windowType() { return static_cast<Qt::WindowType>(int(window()->flags() & Qt::WindowType_Mask)); } + inline bool windowIsPopup() { return windowType() & Qt::Popup & ~Qt::Window; } }; QT_END_NAMESPACE diff --git a/src/plugins/platforms/ios/qioswindow.mm b/src/plugins/platforms/ios/qioswindow.mm index 5edf81af93..b173fb786f 100644 --- a/src/plugins/platforms/ios/qioswindow.mm +++ b/src/plugins/platforms/ios/qioswindow.mm @@ -475,15 +475,17 @@ void QIOSWindow::raiseOrLower(bool raise) void QIOSWindow::updateWindowLevel() { - Qt::WindowType type = static_cast<Qt::WindowType>(int(window()->flags() & Qt::WindowType_Mask)); + Qt::WindowType type = windowType(); if (type == Qt::ToolTip) m_windowLevel = 120; else if (window()->flags() & Qt::WindowStaysOnTopHint) m_windowLevel = 100; else if (window()->isModal()) + m_windowLevel = 40; + else if (type == Qt::Popup) m_windowLevel = 30; - else if (type & Qt::Popup & ~Qt::Window) + else if (type == Qt::SplashScreen) m_windowLevel = 20; else if (type == Qt::Tool) m_windowLevel = 10; |