summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/platforms')
-rw-r--r--src/plugins/platforms/android/qandroidplatformscreen.cpp5
-rw-r--r--src/plugins/platforms/cocoa/qcocoaintegration.mm3
-rw-r--r--src/plugins/platforms/ios/qiosscreen.mm28
-rw-r--r--src/plugins/platforms/qnx/qqnxscreen.cpp4
-rw-r--r--src/plugins/platforms/windows/qwindowsscreen.cpp10
-rw-r--r--src/plugins/platforms/winrt/qwinrtscreen.cpp3
-rw-r--r--src/plugins/platforms/xcb/qxcbscreen.cpp4
7 files changed, 23 insertions, 34 deletions
diff --git a/src/plugins/platforms/android/qandroidplatformscreen.cpp b/src/plugins/platforms/android/qandroidplatformscreen.cpp
index 870d81688c..3746d79675 100644
--- a/src/plugins/platforms/android/qandroidplatformscreen.cpp
+++ b/src/plugins/platforms/android/qandroidplatformscreen.cpp
@@ -221,7 +221,7 @@ void QAndroidPlatformScreen::setPhysicalSize(const QSize &size)
void QAndroidPlatformScreen::setSize(const QSize &size)
{
m_size = size;
- QWindowSystemInterface::handleScreenGeometryChange(QPlatformScreen::screen(), geometry());
+ QWindowSystemInterface::handleScreenGeometryChange(QPlatformScreen::screen(), geometry(), availableGeometry());
}
void QAndroidPlatformScreen::setAvailableGeometry(const QRect &rect)
@@ -233,8 +233,7 @@ void QAndroidPlatformScreen::setAvailableGeometry(const QRect &rect)
QRect oldGeometry = m_availableGeometry;
m_availableGeometry = rect;
- QWindowSystemInterface::handleScreenGeometryChange(QPlatformScreen::screen(), geometry());
- QWindowSystemInterface::handleScreenAvailableGeometryChange(QPlatformScreen::screen(), availableGeometry());
+ QWindowSystemInterface::handleScreenGeometryChange(QPlatformScreen::screen(), geometry(), availableGeometry());
resizeMaximizedWindows();
if (oldGeometry.width() == 0 && oldGeometry.height() == 0 && rect.width() > 0 && rect.height() > 0) {
diff --git a/src/plugins/platforms/cocoa/qcocoaintegration.mm b/src/plugins/platforms/cocoa/qcocoaintegration.mm
index 4be49ed68f..ebe58be155 100644
--- a/src/plugins/platforms/cocoa/qcocoaintegration.mm
+++ b/src/plugins/platforms/cocoa/qcocoaintegration.mm
@@ -137,10 +137,9 @@ void QCocoaScreen::updateGeometry()
m_name = QString::fromUtf8([[localizedNames objectForKey:[[localizedNames allKeys] objectAtIndex:0]] UTF8String]);
[deviceInfo release];
- QWindowSystemInterface::handleScreenGeometryChange(screen(), geometry());
+ QWindowSystemInterface::handleScreenGeometryChange(screen(), geometry(), availableGeometry());
QWindowSystemInterface::handleScreenLogicalDotsPerInchChange(screen(), m_logicalDpi.first, m_logicalDpi.second);
QWindowSystemInterface::handleScreenRefreshRateChange(screen(), m_refreshRate);
- QWindowSystemInterface::handleScreenAvailableGeometryChange(screen(), availableGeometry());
}
qreal QCocoaScreen::devicePixelRatio() const
diff --git a/src/plugins/platforms/ios/qiosscreen.mm b/src/plugins/platforms/ios/qiosscreen.mm
index f1184be1b4..eb3b7e3c44 100644
--- a/src/plugins/platforms/ios/qiosscreen.mm
+++ b/src/plugins/platforms/ios/qiosscreen.mm
@@ -238,30 +238,26 @@ QIOSScreen::~QIOSScreen()
void QIOSScreen::updateProperties()
{
+ QRect previousGeometry = m_geometry;
+ QRect previousAvailableGeometry = m_availableGeometry;
+
bool inPortrait = UIInterfaceOrientationIsPortrait(m_uiWindow.rootViewController.interfaceOrientation);
- QRect geometry = inPortrait ? fromCGRect(m_uiScreen.bounds).toRect()
+ m_geometry = inPortrait ? fromCGRect(m_uiScreen.bounds).toRect()
: QRect(m_uiScreen.bounds.origin.x, m_uiScreen.bounds.origin.y,
m_uiScreen.bounds.size.height, m_uiScreen.bounds.size.width);
- if (geometry != m_geometry) {
- m_geometry = geometry;
-
- const qreal millimetersPerInch = 25.4;
- m_physicalSize = QSizeF(m_geometry.size()) / m_unscaledDpi * millimetersPerInch;
-
- QWindowSystemInterface::handleScreenGeometryChange(screen(), m_geometry);
- }
-
- QRect availableGeometry = geometry;
+ m_availableGeometry = m_geometry;
CGSize applicationFrameSize = m_uiScreen.applicationFrame.size;
- int statusBarHeight = geometry.height() - (inPortrait ? applicationFrameSize.height : applicationFrameSize.width);
+ int statusBarHeight = m_geometry.height() - (inPortrait ? applicationFrameSize.height : applicationFrameSize.width);
+
+ m_availableGeometry.adjust(0, statusBarHeight, 0, 0);
- availableGeometry.adjust(0, statusBarHeight, 0, 0);
+ if (m_geometry != previousGeometry || m_availableGeometry != previousAvailableGeometry) {
+ const qreal millimetersPerInch = 25.4;
+ m_physicalSize = QSizeF(m_geometry.size()) / m_unscaledDpi * millimetersPerInch;
- if (availableGeometry != m_availableGeometry) {
- m_availableGeometry = availableGeometry;
- QWindowSystemInterface::handleScreenAvailableGeometryChange(screen(), m_availableGeometry);
+ QWindowSystemInterface::handleScreenGeometryChange(screen(), m_geometry, m_availableGeometry);
}
if (screen())
diff --git a/src/plugins/platforms/qnx/qqnxscreen.cpp b/src/plugins/platforms/qnx/qqnxscreen.cpp
index 59dc84ebc8..d6e5574392 100644
--- a/src/plugins/platforms/qnx/qqnxscreen.cpp
+++ b/src/plugins/platforms/qnx/qqnxscreen.cpp
@@ -445,7 +445,7 @@ void QQnxScreen::setRotation(int rotation)
// Rotating only the primary screen is what we had in the navigator event handler before refactoring
if (m_primaryScreen) {
QWindowSystemInterface::handleScreenOrientationChange(screen(), orientation());
- QWindowSystemInterface::handleScreenGeometryChange(screen(), m_currentGeometry);
+ QWindowSystemInterface::handleScreenGeometryChange(screen(), m_currentGeometry, availableGeometry());
}
// Flush everything, so that the windows rotations are applied properly.
@@ -705,7 +705,7 @@ void QQnxScreen::keyboardHeightChanged(int height)
m_keyboardHeight = height;
- QWindowSystemInterface::handleScreenAvailableGeometryChange(screen(), availableGeometry());
+ QWindowSystemInterface::handleScreenGeometryChange(screen(), geometry(), availableGeometry());
}
void QQnxScreen::addOverlayWindow(screen_window_t window)
diff --git a/src/plugins/platforms/windows/qwindowsscreen.cpp b/src/plugins/platforms/windows/qwindowsscreen.cpp
index f491b51aa8..8d8505ea05 100644
--- a/src/plugins/platforms/windows/qwindowsscreen.cpp
+++ b/src/plugins/platforms/windows/qwindowsscreen.cpp
@@ -346,15 +346,11 @@ void QWindowsScreen::handleChanges(const QWindowsScreenData &newData)
{
m_data.physicalSizeMM = newData.physicalSizeMM;
- if (m_data.geometry != newData.geometry) {
+ if (m_data.geometry != newData.geometry || m_data.availableGeometry != newData.availableGeometry) {
m_data.geometry = newData.geometry;
- QWindowSystemInterface::handleScreenGeometryChange(screen(),
- newData.geometry);
- }
- if (m_data.availableGeometry != newData.availableGeometry) {
m_data.availableGeometry = newData.availableGeometry;
- QWindowSystemInterface::handleScreenAvailableGeometryChange(screen(),
- newData.availableGeometry);
+ QWindowSystemInterface::handleScreenGeometryChange(screen(),
+ newData.geometry, newData.availableGeometry);
}
if (!qFuzzyCompare(m_data.dpi.first, newData.dpi.first)
|| !qFuzzyCompare(m_data.dpi.second, newData.dpi.second)) {
diff --git a/src/plugins/platforms/winrt/qwinrtscreen.cpp b/src/plugins/platforms/winrt/qwinrtscreen.cpp
index b981b94748..a18bd2834e 100644
--- a/src/plugins/platforms/winrt/qwinrtscreen.cpp
+++ b/src/plugins/platforms/winrt/qwinrtscreen.cpp
@@ -1032,8 +1032,7 @@ HRESULT QWinRTScreen::onSizeChanged(ICoreWindow *, IWindowSizeChangedEventArgs *
// a more advanced compositor is written.
d->logicalSize = logicalSize;
const QRect newGeometry = geometry();
- QWindowSystemInterface::handleScreenGeometryChange(screen(), newGeometry);
- QWindowSystemInterface::handleScreenAvailableGeometryChange(screen(), newGeometry);
+ QWindowSystemInterface::handleScreenGeometryChange(screen(), newGeometry, newGeometry);
QPlatformScreen::resizeMaximizedWindows();
handleExpose();
diff --git a/src/plugins/platforms/xcb/qxcbscreen.cpp b/src/plugins/platforms/xcb/qxcbscreen.cpp
index 83ffb02362..b936df4b85 100644
--- a/src/plugins/platforms/xcb/qxcbscreen.cpp
+++ b/src/plugins/platforms/xcb/qxcbscreen.cpp
@@ -403,7 +403,7 @@ void QXcbScreen::handleScreenChange(xcb_randr_screen_change_notify_event_t *chan
case XCB_RANDR_ROTATION_REFLECT_Y: break;
}
- QWindowSystemInterface::handleScreenGeometryChange(QPlatformScreen::screen(), geometry());
+ QWindowSystemInterface::handleScreenGeometryChange(QPlatformScreen::screen(), geometry(), availableGeometry());
QWindowSystemInterface::handleScreenOrientationChange(QPlatformScreen::screen(), m_orientation);
QDpi ldpi = logicalDpi();
@@ -451,7 +451,7 @@ void QXcbScreen::updateGeometry(xcb_timestamp_t timestamp)
m_geometry = QRect(xGeometry.topLeft()/dpr, xGeometry.size()/dpr);
m_availableGeometry = QRect(xAvailableGeometry.topLeft()/dpr, xAvailableGeometry.size()/dpr);
- QWindowSystemInterface::handleScreenAvailableGeometryChange(QPlatformScreen::screen(), m_availableGeometry);
+ QWindowSystemInterface::handleScreenGeometryChange(QPlatformScreen::screen(), m_geometry, m_availableGeometry);
}
void QXcbScreen::updateRefreshRate()