summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author George Mount <mount@google.com> 2011-10-05 15:33:46 -0700
committer Android (Google) Code Review <android-gerrit@google.com> 2011-10-05 15:33:46 -0700
commit67f9d32e5ed55b15b84be4d0bdff828d48abe2eb (patch)
treea8c9eef71ce2e54c4dea243ec0c0bbb625d0e80f
parent1302d32996100233826598040a8c55bfbecb9322 (diff)
parent1fa26cbfc883ef76a46234d104906a1a9a515fc5 (diff)
Merge "Fix monkey NullPointerException"
-rw-r--r--core/java/android/webkit/WebTextView.java6
-rw-r--r--core/java/android/webkit/WebView.java9
2 files changed, 14 insertions, 1 deletions
diff --git a/core/java/android/webkit/WebTextView.java b/core/java/android/webkit/WebTextView.java
index 092e2b5d6dbc..33f84a508f02 100644
--- a/core/java/android/webkit/WebTextView.java
+++ b/core/java/android/webkit/WebTextView.java
@@ -768,9 +768,13 @@ import junit.framework.Assert;
imm.hideSoftInputFromWindow(getWindowToken(), 0);
}
mInsideRemove = true;
+ boolean isFocused = hasFocus();
mWebView.removeView(this);
- mWebView.requestFocus();
+ if (isFocused) {
+ mWebView.requestFocus();
+ }
mInsideRemove = false;
+ mHandler.removeCallbacksAndMessages(null);
}
@Override
diff --git a/core/java/android/webkit/WebView.java b/core/java/android/webkit/WebView.java
index eaed9fecc4fa..89f21d7d438a 100644
--- a/core/java/android/webkit/WebView.java
+++ b/core/java/android/webkit/WebView.java
@@ -1581,6 +1581,11 @@ public class WebView extends AbsoluteLayout
mListBoxDialog.dismiss();
mListBoxDialog = null;
}
+ // remove so that it doesn't cause events
+ if (mWebTextView != null) {
+ mWebTextView.remove();
+ mWebTextView = null;
+ }
if (mNativeClass != 0) nativeStopGL();
if (mWebViewCore != null) {
// Set the handlers to null before destroying WebViewCore so no
@@ -7636,6 +7641,10 @@ public class WebView extends AbsoluteLayout
}
/* package */ void passToJavaScript(String currentText, KeyEvent event) {
+ // check if mWebViewCore has been destroyed
+ if (mWebViewCore == null) {
+ return;
+ }
WebViewCore.JSKeyData arg = new WebViewCore.JSKeyData();
arg.mEvent = event;
arg.mCurrentText = currentText;