summaryrefslogtreecommitdiff
path: root/services/java/com/android/server/display/OverlayDisplayAdapter.java
diff options
context:
space:
mode:
Diffstat (limited to 'services/java/com/android/server/display/OverlayDisplayAdapter.java')
-rw-r--r--services/java/com/android/server/display/OverlayDisplayAdapter.java18
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);
}
}