From 1db73f66624e7d151710483dd58e03eed672f064 Mon Sep 17 00:00:00 2001 From: Robert Carr Date: Wed, 21 Dec 2016 12:58:51 -0800 Subject: SurfaceFlinger: Add support for non-privileged clients. Allow clients without privilege to create child layers through scoped connections. We enable this in preparation for allowing SurfaceView to bypass the WindowManager. We include support for reparenting of all of a layer's children for the WindowManager to use in cases where one surface is replacing another (while keeping its children around). Test: Tested with corresponding SurfaceView modifications. Change-Id: I9920e6730d719113522a68788e63fb59f70d3406 --- libs/gui/SurfaceControl.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'libs/gui/SurfaceControl.cpp') diff --git a/libs/gui/SurfaceControl.cpp b/libs/gui/SurfaceControl.cpp index c82f6a7812..2d05b78483 100644 --- a/libs/gui/SurfaceControl.cpp +++ b/libs/gui/SurfaceControl.cpp @@ -168,13 +168,19 @@ status_t SurfaceControl::setFinalCrop(const Rect& crop) { return mClient->setFinalCrop(mHandle, crop); } -status_t SurfaceControl::deferTransactionUntil(sp handle, +status_t SurfaceControl::deferTransactionUntil(const sp& handle, uint64_t frameNumber) { status_t err = validate(); if (err < 0) return err; return mClient->deferTransactionUntil(mHandle, handle, frameNumber); } +status_t SurfaceControl::reparentChildren(const sp& newParentHandle) { + status_t err = validate(); + if (err < 0) return err; + return mClient->reparentChildren(mHandle, newParentHandle); +} + status_t SurfaceControl::setOverrideScalingMode(int32_t overrideScalingMode) { status_t err = validate(); if (err < 0) return err; -- cgit v1.2.3-59-g8ed1b