diff options
| author | Mathias Agopian <mathias@google.com> | 2009-09-09 18:32:34 -0700 |
|---|---|---|
| committer | Mathias Agopian <mathias@google.com> | 2009-09-09 18:32:34 -0700 |
| commit | 6b7f1a62b5094fc72765a2537ee0760572df0950 (patch) | |
| tree | 862234c700f651eb9efe43b246976e97d9cc8b2f /core/java/android/view/SurfaceView.java | |
| parent | e7c11d770ab44656d32330ba585489bd284b4a47 (diff) | |
fix [2074427] SurfaceView doesn't disappear on GONE
Diffstat (limited to 'core/java/android/view/SurfaceView.java')
| -rw-r--r-- | core/java/android/view/SurfaceView.java | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/core/java/android/view/SurfaceView.java b/core/java/android/view/SurfaceView.java index ea879ed94358..1426aef86099 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); } |
