summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/ios/qioswindow.mm
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/platforms/ios/qioswindow.mm')
-rw-r--r--src/plugins/platforms/ios/qioswindow.mm17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/plugins/platforms/ios/qioswindow.mm b/src/plugins/platforms/ios/qioswindow.mm
index e220312d15..c1f14f22ef 100644
--- a/src/plugins/platforms/ios/qioswindow.mm
+++ b/src/plugins/platforms/ios/qioswindow.mm
@@ -44,6 +44,7 @@
#include "qiosscreen.h"
#include "qiosapplicationdelegate.h"
#include "qiosorientationlistener.h"
+#include "qiosviewcontroller.h"
#import <QuartzCore/CAEAGLLayer.h>
@@ -257,6 +258,22 @@ void QIOSWindow::handleContentOrientationChange(Qt::ScreenOrientation orientatio
[[UIApplication sharedApplication] setStatusBarOrientation:uiOrientation animated:NO];
}
+Qt::ScreenOrientation QIOSWindow::requestWindowOrientation(Qt::ScreenOrientation orientation)
+{
+ if (!m_view.window)
+ return Qt::PortraitOrientation;
+ UIViewController *viewController = m_view.window.rootViewController;
+ if (!viewController || [viewController isKindOfClass:[QIOSViewController class]] == false) {
+ return convertToQtOrientation(viewController.interfaceOrientation);
+ } else {
+ QIOSViewController *qiosViewController = static_cast<QIOSViewController *>(viewController);
+ if ([qiosViewController rotateToDeviceOrientation])
+ return orientation;
+ else
+ return convertToQtOrientation(viewController.interfaceOrientation);
+ }
+}
+
GLuint QIOSWindow::framebufferObject(const QIOSContext &context) const
{
static GLuint framebuffer = 0;