From 6b7f1a62b5094fc72765a2537ee0760572df0950 Mon Sep 17 00:00:00 2001 From: Mathias Agopian Date: Wed, 9 Sep 2009 18:32:34 -0700 Subject: [PATCH] fix [2074427] SurfaceView doesn't disappear on GONE --- core/java/android/view/SurfaceView.java | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/core/java/android/view/SurfaceView.java b/core/java/android/view/SurfaceView.java index ea879ed943588..1426aef860991 100644 --- a/core/java/android/view/SurfaceView.java +++ b/core/java/android/view/SurfaceView.java @@ -124,6 +124,8 @@ public class SurfaceView extends View { }; boolean mRequestedVisible = false; + boolean mWindowVisibility = false; + boolean mViewVisibility = false; int mRequestedWidth = -1; int mRequestedHeight = -1; int mRequestedFormat = PixelFormat.OPAQUE; @@ -176,12 +178,22 @@ public class SurfaceView extends View { mSession = getWindowSession(); mLayout.token = getWindowToken(); mLayout.setTitle("SurfaceView"); + mViewVisibility = getVisibility() == VISIBLE; } @Override protected void onWindowVisibilityChanged(int visibility) { super.onWindowVisibilityChanged(visibility); - mRequestedVisible = visibility == VISIBLE; + mWindowVisibility = visibility == VISIBLE; + mRequestedVisible = mWindowVisibility && mViewVisibility; + updateWindow(false); + } + + @Override + public void setVisibility(int visibility) { + super.setVisibility(visibility); + mViewVisibility = visibility == VISIBLE; + mRequestedVisible = mWindowVisibility && mViewVisibility; updateWindow(false); }