diff options
author | Assam Boudjelthia <[email protected]> | 2025-01-12 23:22:53 +0200 |
---|---|---|
committer | Assam Boudjelthia <[email protected]> | 2025-01-28 17:20:08 +0200 |
commit | 0f2c6450201bfa1e612175cddf7481ab72eb4620 (patch) | |
tree | 045258e8e70305a871c2fbfd2859f4d7fb92ed89 | |
parent | 0d997213a6a42d482e09c287421c34c35615ba9e (diff) |
Android: don't manage available screen size values under androidjnimain
Those values should be under the plaftoform screen as they are now, and
handling them also here is just duplication that's not needed.
Change-Id: Ib6be6655527aa86403173d477d137b92d8e51987
Reviewed-by: Petri Virkkunen <[email protected]>
-rw-r--r-- | src/plugins/platforms/android/androidjniinput.cpp | 13 | ||||
-rw-r--r-- | src/plugins/platforms/android/androidjnimain.cpp | 22 |
2 files changed, 14 insertions, 21 deletions
diff --git a/src/plugins/platforms/android/androidjniinput.cpp b/src/plugins/platforms/android/androidjniinput.cpp index a0faedcc5b2..cf4fc0a0d9d 100644 --- a/src/plugins/platforms/android/androidjniinput.cpp +++ b/src/plugins/platforms/android/androidjniinput.cpp @@ -276,8 +276,13 @@ namespace QtAndroidInput break; } - const int dw = availableWidthPixels(); - const int dh = availableHeightPixels(); + + QSize availableSize; + if (auto *platformIntegration = QtAndroid::androidPlatformIntegration()) + availableSize = platformIntegration->screen()->availableGeometry().size(); + else + availableSize = QAndroidPlatformScreen::defaultAvailableGeometry().size(); + QWindow *window = QtAndroid::windowFromId(winId); if (!window) { qCWarning(lcQpaInputMethods, "Touch event received for non-existing window %d", winId); @@ -290,8 +295,8 @@ namespace QtAndroidInput touchPoint.id = id + 1; touchPoint.pressure = pressure; touchPoint.rotation = qRadiansToDegrees(rotation); - touchPoint.normalPosition = QPointF((mappedTouchPoint.x() / dw), - (mappedTouchPoint.y() / dh)); + touchPoint.normalPosition = QPointF((mappedTouchPoint.x() / availableSize.width()), + (mappedTouchPoint.y() / availableSize.height())); touchPoint.state = state; touchPoint.area = QRectF(mappedTouchPoint.x() - double(minor * 0.5f), mappedTouchPoint.y() - double(major * 0.5f), diff --git a/src/plugins/platforms/android/androidjnimain.cpp b/src/plugins/platforms/android/androidjnimain.cpp index ab42b62d04f..f243a675bf5 100644 --- a/src/plugins/platforms/android/androidjnimain.cpp +++ b/src/plugins/platforms/android/androidjnimain.cpp @@ -74,8 +74,6 @@ static sem_t m_exitSemaphore, m_terminateSemaphore; static QAndroidPlatformIntegration *m_androidPlatformIntegration = nullptr; -static int m_availableWidthPixels = 0; -static int m_availableHeightPixels = 0; static double m_density = 1.0; static AndroidAssetsFileEngineHandler *m_androidAssetsFileEngineHandler = nullptr; @@ -143,16 +141,6 @@ namespace QtAndroid return nullptr; } - int availableWidthPixels() - { - return m_availableWidthPixels; - } - - int availableHeightPixels() - { - return m_availableHeightPixels; - } - double pixelDensity() { return m_density; @@ -568,11 +556,11 @@ static void terminateQt(JNIEnv *env, jclass /*clazz*/) static void handleLayoutSizeChanged(JNIEnv * /*env*/, jclass /*clazz*/, jint availableWidth, jint availableHeight) { - if (m_availableWidthPixels == availableWidth && m_availableHeightPixels == availableHeight) - return; - - m_availableWidthPixels = availableWidth; - m_availableHeightPixels = availableHeight; + if (m_androidPlatformIntegration) { + QSize currentSize = m_androidPlatformIntegration->screen()->availableGeometry().size(); + if (currentSize.width() == availableWidth && currentSize.height() == availableHeight) + return; + } QMutexLocker lock(&m_platformMutex); // available geometry always starts from top left |