summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAssam Boudjelthia <[email protected]>2025-01-12 23:22:53 +0200
committerAssam Boudjelthia <[email protected]>2025-01-28 17:20:08 +0200
commit0f2c6450201bfa1e612175cddf7481ab72eb4620 (patch)
tree045258e8e70305a871c2fbfd2859f4d7fb92ed89
parent0d997213a6a42d482e09c287421c34c35615ba9e (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.cpp13
-rw-r--r--src/plugins/platforms/android/androidjnimain.cpp22
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