summaryrefslogtreecommitdiff
path: root/include/gui/SurfaceControl.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/gui/SurfaceControl.h')
-rw-r--r--include/gui/SurfaceControl.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/include/gui/SurfaceControl.h b/include/gui/SurfaceControl.h
index 8d338f98a8..58ec6dce2a 100644
--- a/include/gui/SurfaceControl.h
+++ b/include/gui/SurfaceControl.h
@@ -93,6 +93,18 @@ public:
// Reparents all children of this layer to the new parent handle.
status_t reparentChildren(const sp<IBinder>& newParentHandle);
+ // Detaches all child surfaces (and their children recursively)
+ // from their SurfaceControl.
+ // The child SurfaceControl's will not throw exceptions or return errors,
+ // but transactions will have no effect.
+ // The child surfaces will continue to follow their parent surfaces,
+ // and remain eligible for rendering, but their relative state will be
+ // frozen. We use this in the WindowManager, in app shutdown/relaunch
+ // scenarios, where the app would otherwise clean up its child Surfaces.
+ // Sometimes the WindowManager needs to extend their lifetime slightly
+ // in order to perform an exit animation or prevent flicker.
+ status_t detachChildren();
+
// Set an override scaling mode as documented in <system/window.h>
// the override scaling mode will take precedence over any client
// specified scaling mode. -1 will clear the override scaling mode.