summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/jar/src/org/qtproject/qt5/android/view/QtAndroidWebViewController.java10
-rw-r--r--src/webview/qwebview_android.cpp7
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