diff options
Diffstat (limited to 'services/java/com/android/server/display/OverlayDisplayAdapter.java')
-rw-r--r-- | services/java/com/android/server/display/OverlayDisplayAdapter.java | 18 |
1 files changed, 7 insertions, 11 deletions
diff --git a/services/java/com/android/server/display/OverlayDisplayAdapter.java b/services/java/com/android/server/display/OverlayDisplayAdapter.java index ce402a521162..007acf716598 100644 --- a/services/java/com/android/server/display/OverlayDisplayAdapter.java +++ b/services/java/com/android/server/display/OverlayDisplayAdapter.java @@ -211,11 +211,13 @@ final class OverlayDisplayAdapter extends DisplayAdapter { mSurfaceTexture = surfaceTexture; } - public void clearSurfaceTextureLocked() { - if (mSurfaceTexture != null) { - mSurfaceTexture = null; + public void destroyLocked() { + mSurfaceTexture = null; + if (mSurface != null) { + mSurface.release(); + mSurface = null; } - sendTraversalRequestLocked(); + SurfaceControl.destroyDisplay(getDisplayTokenLocked()); } @Override @@ -225,12 +227,6 @@ final class OverlayDisplayAdapter extends DisplayAdapter { mSurface = new Surface(mSurfaceTexture); } setSurfaceInTransactionLocked(mSurface); - } else { - setSurfaceInTransactionLocked(null); - if (mSurface != null) { - mSurface.destroy(); - mSurface = null; - } } } @@ -307,7 +303,7 @@ final class OverlayDisplayAdapter extends DisplayAdapter { public void onWindowDestroyed() { synchronized (getSyncRoot()) { if (mDevice != null) { - mDevice.clearSurfaceTextureLocked(); + mDevice.destroyLocked(); sendDisplayDeviceEventLocked(mDevice, DISPLAY_DEVICE_EVENT_REMOVED); } } |