diff options
| author | 2011-10-05 15:33:46 -0700 | |
|---|---|---|
| committer | 2011-10-05 15:33:46 -0700 | |
| commit | 67f9d32e5ed55b15b84be4d0bdff828d48abe2eb (patch) | |
| tree | a8c9eef71ce2e54c4dea243ec0c0bbb625d0e80f | |
| parent | 1302d32996100233826598040a8c55bfbecb9322 (diff) | |
| parent | 1fa26cbfc883ef76a46234d104906a1a9a515fc5 (diff) | |
Merge "Fix monkey NullPointerException"
| -rw-r--r-- | core/java/android/webkit/WebTextView.java | 6 | ||||
| -rw-r--r-- | core/java/android/webkit/WebView.java | 9 |
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; |