diff options
-rw-r--r-- | src/jar/src/org/qtproject/qt5/android/view/QtAndroidWebViewController.java | 10 | ||||
-rw-r--r-- | src/webview/qwebview_android.cpp | 7 |
2 files changed, 16 insertions, 1 deletions
diff --git a/src/jar/src/org/qtproject/qt5/android/view/QtAndroidWebViewController.java b/src/jar/src/org/qtproject/qt5/android/view/QtAndroidWebViewController.java index 2023df9..1c46847 100644 --- a/src/jar/src/org/qtproject/qt5/android/view/QtAndroidWebViewController.java +++ b/src/jar/src/org/qtproject/qt5/android/view/QtAndroidWebViewController.java @@ -445,4 +445,14 @@ public class QtAndroidWebViewController final PackageManager pm = view.getContext().getPackageManager(); return pm.checkPermission("android.permission.ACCESS_FINE_LOCATION", name) == PackageManager.PERMISSION_GRANTED; } + + public void destroy() + { + m_activity.runOnUiThread(new Runnable() { + @Override + public void run() { + m_webView.destroy(); + } + }); + } } diff --git a/src/webview/qwebview_android.cpp b/src/webview/qwebview_android.cpp index be5ab6d..f5837bc 100644 --- a/src/webview/qwebview_android.cpp +++ b/src/webview/qwebview_android.cpp @@ -128,8 +128,13 @@ QAndroidWebViewPrivate::QAndroidWebViewPrivate(QObject *p) QAndroidWebViewPrivate::~QAndroidWebViewPrivate() { g_webViews->take(m_id); - if (m_window != 0 && m_window->parent() == 0) + if (m_window != 0) { + m_window->setVisible(false); + m_window->setParent(0); delete m_window; + } + + m_viewController.callMethod<void>("destroy"); } QUrl QAndroidWebViewPrivate::url() const |