summaryrefslogtreecommitdiff
path: root/core/java/android/webkit/ViewManager.java
diff options
context:
space:
mode:
authorGrace Kloba <klobag@google.com>2010-04-21 21:14:23 -0700
committerGrace Kloba <klobag@google.com>2010-04-21 21:23:30 -0700
commit8aedd10aca67ce988888e99ecc3fcbe81344ea4d (patch)
treeb70654bfa44176a366affd8a6a77f2df32025b4c /core/java/android/webkit/ViewManager.java
parent25dc5f30b2a8276c5790c7152a801fcd905c7281 (diff)
Post a message to set SurfaceView to be visible when
we switch to use the layout size. Otherwise it will first use the old dimension which can exceed the limit, which in turn causes the Browser to crash. Fix http://b/issue?id=2616263
Diffstat (limited to 'core/java/android/webkit/ViewManager.java')
-rw-r--r--core/java/android/webkit/ViewManager.java9
1 files changed, 8 insertions, 1 deletions
diff --git a/core/java/android/webkit/ViewManager.java b/core/java/android/webkit/ViewManager.java
index ece33ab87cbf..153c1c23c978 100644
--- a/core/java/android/webkit/ViewManager.java
+++ b/core/java/android/webkit/ViewManager.java
@@ -205,7 +205,14 @@ class ViewManager {
if (sView.getVisibility() == View.VISIBLE) {
sView.setVisibility(View.INVISIBLE);
sView.getHolder().setSizeFromLayout();
- sView.setVisibility(View.VISIBLE);
+ // setLayoutParams() only requests the layout. If we set it
+ // to VISIBLE now, it will use the old dimension to set the
+ // size. Post a message to ensure that it shows the new size.
+ mWebView.mPrivateHandler.post(new Runnable() {
+ public void run() {
+ sView.setVisibility(View.VISIBLE);
+ }
+ });
} else {
sView.getHolder().setSizeFromLayout();
}