From fa89c50ae7ca06b3a9c42ee8d4b8eea6567b5e2e Mon Sep 17 00:00:00 2001 From: Derek Sollenberger Date: Fri, 1 Oct 2010 11:19:36 -0400 Subject: [PATCH] Ensure full screen plugin is dismissed when necessary. Dismiss the full screen plugin view when the user navigates to a new page or tab. This ensures the plugin does not cover up new content when the browser switches tabs or loads a new URL. Change-Id: I35d65073dbc772ab5babd20287d4d2fe598178e5 http://b/2908332 --- core/java/android/webkit/WebView.java | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/core/java/android/webkit/WebView.java b/core/java/android/webkit/WebView.java index 7944807b12e6b..fedb87325a7eb 100644 --- a/core/java/android/webkit/WebView.java +++ b/core/java/android/webkit/WebView.java @@ -1291,6 +1291,7 @@ public class WebView extends AbsoluteLayout private void clearHelpers() { clearTextEntry(); clearActionModes(); + dismissFullScreenMode(); } /** @@ -4911,6 +4912,13 @@ public class WebView extends AbsoluteLayout return mFullScreenHolder != null; } + private void dismissFullScreenMode() { + if (inFullScreenMode()) { + mFullScreenHolder.dismiss(); + mFullScreenHolder = null; + } + } + void onPinchToZoomAnimationStart() { // cancel the single touch handling cancelTouch(); @@ -6878,9 +6886,9 @@ public class WebView extends AbsoluteLayout View view = (View) msg.obj; int npp = msg.arg1; - if (mFullScreenHolder != null) { + if (inFullScreenMode()) { Log.w(LOGTAG, "Should not have another full screen."); - mFullScreenHolder.dismiss(); + dismissFullScreenMode(); } mFullScreenHolder = new PluginFullScreenHolder(WebView.this, npp); mFullScreenHolder.setContentView(view); @@ -6891,10 +6899,7 @@ public class WebView extends AbsoluteLayout break; } case HIDE_FULLSCREEN: - if (inFullScreenMode()) { - mFullScreenHolder.dismiss(); - mFullScreenHolder = null; - } + dismissFullScreenMode(); break; case DOM_FOCUS_CHANGED: