diff options
| author | 2019-07-03 19:29:05 -0700 | |
|---|---|---|
| committer | 2019-07-03 19:29:05 -0700 | |
| commit | b873551d2433cd3bf3be53df7eabda001d2629ec (patch) | |
| tree | e7a4a16e063a77b07722df7e47dc2b037b48ecff /services/surfaceflinger/Layer.cpp | |
| parent | e3b2036a57fc5a9980c3250fac6a1dddf9f886ee (diff) | |
| parent | fe43c1b8e42b8f84e0cfab8bc0cd6a629e972038 (diff) | |
Merge "SurfaceFlinger: Hide Z order relatives when relativeOf is hiddenByPolicy." into qt-dev am: e377b27242
am: fe43c1b8e4
Change-Id: I7a4372f1d7e14373d97529809fade0f1bfe69e17
Diffstat (limited to 'services/surfaceflinger/Layer.cpp')
| -rw-r--r-- | services/surfaceflinger/Layer.cpp | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/services/surfaceflinger/Layer.cpp b/services/surfaceflinger/Layer.cpp index bda7e4308f..1318bc0b2a 100644 --- a/services/surfaceflinger/Layer.cpp +++ b/services/surfaceflinger/Layer.cpp @@ -1231,6 +1231,14 @@ bool Layer::isHiddenByPolicy() const { if (parent != nullptr && parent->isHiddenByPolicy()) { return true; } + if (usingRelativeZ(LayerVector::StateSet::Drawing)) { + auto zOrderRelativeOf = mDrawingState.zOrderRelativeOf.promote(); + if (zOrderRelativeOf != nullptr) { + if (zOrderRelativeOf->isHiddenByPolicy()) { + return true; + } + } + } return s.flags & layer_state_t::eLayerHidden; } @@ -1612,7 +1620,7 @@ int32_t Layer::getZ() const { return mDrawingState.z; } -bool Layer::usingRelativeZ(LayerVector::StateSet stateSet) { +bool Layer::usingRelativeZ(LayerVector::StateSet stateSet) const { const bool useDrawing = stateSet == LayerVector::StateSet::Drawing; const State& state = useDrawing ? mDrawingState : mCurrentState; return state.zOrderRelativeOf != nullptr; |