diff options
Diffstat (limited to 'services/surfaceflinger/Client.cpp')
| -rw-r--r-- | services/surfaceflinger/Client.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/services/surfaceflinger/Client.cpp b/services/surfaceflinger/Client.cpp index c90024b863..077469b5e1 100644 --- a/services/surfaceflinger/Client.cpp +++ b/services/surfaceflinger/Client.cpp @@ -65,9 +65,14 @@ Client::~Client() } } -void Client::setParentLayer(const sp<Layer>& parentLayer) { +void Client::updateParent(const sp<Layer>& parentLayer) { Mutex::Autolock _l(mLock); - mParentLayer = parentLayer; + + // If we didn't ever have a parent, then we must instead be + // relying on permissions and we never need a parent. + if (mParentLayer != nullptr) { + mParentLayer = parentLayer; + } } sp<Layer> Client::getParentLayer(bool* outParentDied) const { |