diff options
| author | Tarja Sundqvist <tarja.sundqvist@qt.io> | 2024-01-22 23:14:16 +0200 |
|---|---|---|
| committer | Tarja Sundqvist <tarja.sundqvist@qt.io> | 2024-03-04 18:33:04 +0000 |
| commit | b4d8fd00369aafd8285b7cd37c9307f6d0b655d7 (patch) | |
| tree | 9491b4da02f51b8a6fa7899ce005645c441229c5 | |
| parent | 66bcbe7ab41f0502b7cc5af784658e1c583b7b11 (diff) | |
| parent | 1ae83597c2e326f6bda47070a833bac61264218f (diff) | |
Merge remote-tracking branch 'origin/tqtc/lts-6.2.8' into tqtc/lts-6.2-opensource
Conflicts solved in a file:
dependencies.yaml
Change-Id: I4145e9fb83987d1611086718fd910cdd1f833bbe
| -rw-r--r-- | .cmake.conf | 2 | ||||
| -rw-r--r-- | .qmake.conf | 2 | ||||
| -rw-r--r-- | dependencies.yaml | 4 | ||||
| -rw-r--r-- | src/plugins/android/qandroidwebview.cpp | 15 |
4 files changed, 19 insertions, 4 deletions
diff --git a/.cmake.conf b/.cmake.conf index 07d90b8..e62fae5 100644 --- a/.cmake.conf +++ b/.cmake.conf @@ -1,2 +1,2 @@ -set(QT_REPO_MODULE_VERSION "6.2.7") +set(QT_REPO_MODULE_VERSION "6.2.8") set(QT_REPO_MODULE_PRERELEASE_VERSION_SEGMENT "") diff --git a/.qmake.conf b/.qmake.conf index f9a9af8..6cf2140 100644 --- a/.qmake.conf +++ b/.qmake.conf @@ -2,4 +2,4 @@ load(qt_build_config) DEFINES += QT_NO_FOREACH -MODULE_VERSION = 6.2.7 +MODULE_VERSION = 6.2.8 diff --git a/dependencies.yaml b/dependencies.yaml index 2c0c313..f28b146 100644 --- a/dependencies.yaml +++ b/dependencies.yaml @@ -1,7 +1,7 @@ dependencies: ../tqtc-qtdeclarative: - ref: 02277e3753613d9e19bbb36367c7d2b1d13d7545 + ref: 302ab20d46280e11042f3896460c55d8b8146e41 required: true ../tqtc-qtwebengine: - ref: 85d4a8a66a5da12223cc4998850d8d81328b3919 + ref: 4561d2575e60aefcd3e6cd0226f4fd92271a6c06 required: false diff --git a/src/plugins/android/qandroidwebview.cpp b/src/plugins/android/qandroidwebview.cpp index 57d2f6c..c957342 100644 --- a/src/plugins/android/qandroidwebview.cpp +++ b/src/plugins/android/qandroidwebview.cpp @@ -51,6 +51,9 @@ #include <QtCore/qurl.h> #include <QtCore/qdebug.h> +#include <QAbstractEventDispatcher> +#include <QThread> + QT_BEGIN_NAMESPACE static const char qtAndroidWebViewControllerClass[] = "org/qtproject/qt/android/view/QtAndroidWebViewController"; @@ -81,10 +84,22 @@ QAndroidWebViewPrivate::QAndroidWebViewPrivate(QObject *p) , m_callbackId(0) , m_window(0) { + // QtAndroidWebViewController constructor blocks a qGuiThread until + // the WebView is created and configured in UI thread. + // That is why we cannot proceed until AndroidDeadlockProtector is locked + while (!QtAndroidPrivate::acquireAndroidDeadlockProtector()) { + auto eventDispatcher = QThread::currentThread()->eventDispatcher(); + if (eventDispatcher) + eventDispatcher->processEvents( + QEventLoop::ExcludeUserInputEvents|QEventLoop::ExcludeSocketNotifiers); + } m_viewController = QJniObject(qtAndroidWebViewControllerClass, "(Landroid/app/Activity;J)V", QtAndroidPrivate::activity(), m_id); + + QtAndroidPrivate::releaseAndroidDeadlockProtector(); + m_webView = m_viewController.callObjectMethod("getWebView", "()Landroid/webkit/WebView;"); |
