summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/android/qandroidplatformwindow.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/platforms/android/qandroidplatformwindow.cpp')
-rw-r--r--src/plugins/platforms/android/qandroidplatformwindow.cpp35
1 files changed, 20 insertions, 15 deletions
diff --git a/src/plugins/platforms/android/qandroidplatformwindow.cpp b/src/plugins/platforms/android/qandroidplatformwindow.cpp
index 1989ecdee3c..de0271edb56 100644
--- a/src/plugins/platforms/android/qandroidplatformwindow.cpp
+++ b/src/plugins/platforms/android/qandroidplatformwindow.cpp
@@ -397,28 +397,33 @@ void QAndroidPlatformWindow::safeAreaMarginsChanged(JNIEnv *env, jobject object,
if (!qGuiApp)
return;
- QMargins safeMargins;
- if (insets.isValid()) {
- safeMargins = QMargins(
- insets.getField<int>("left"),
- insets.getField<int>("top"),
- insets.getField<int>("right"),
- insets.getField<int>("bottom"));
- }
+ if (!insets.isValid())
+ return;
+ QAndroidPlatformWindow *pWindow = nullptr;
for (QWindow *window : qGuiApp->allWindows()) {
if (!window->handle())
continue;
- QAndroidPlatformWindow *pWindow = static_cast<QAndroidPlatformWindow *>(window->handle());
- if (pWindow->nativeViewId() != id)
- continue;
-
- if (safeMargins != pWindow->safeAreaMargins()) {
- pWindow->setSafeAreaMargins(safeMargins);
- QWindowSystemInterface::handleSafeAreaMarginsChanged(window);
+ QAndroidPlatformWindow *pw = static_cast<QAndroidPlatformWindow *>(window->handle());
+ if (pw->nativeViewId() == id) {
+ pWindow = pw;
break;
}
}
+
+ if (!pWindow)
+ return;
+
+ QMargins safeMargins = QMargins(
+ insets.getField<int>("left"),
+ insets.getField<int>("top"),
+ insets.getField<int>("right"),
+ insets.getField<int>("bottom"));
+
+ if (safeMargins != pWindow->safeAreaMargins()) {
+ pWindow->setSafeAreaMargins(safeMargins);
+ QWindowSystemInterface::handleSafeAreaMarginsChanged(pWindow->window());
+ }
}
static void updateWindows(JNIEnv *env, jobject object)