@@ -2211,10 +2211,13 @@ status_t SurfaceFlinger::captureScreenImplLocked(DisplayID dpy,
22112211 const size_t count = layers.size ();
22122212 for (size_t i=0 ; i<count ; ++i) {
22132213 const sp<LayerBase>& layer (layers[i]);
2214- const uint32_t z = layer->drawingState ().z ;
2215- if (z >= minLayerZ && z <= maxLayerZ) {
2216- if (layer->isProtected ()) {
2217- return INVALID_OPERATION;
2214+ const uint32_t flags = layer->drawingState ().flags ;
2215+ if (!(flags & ISurfaceComposer::eLayerHidden)) {
2216+ const uint32_t z = layer->drawingState ().z ;
2217+ if (z >= minLayerZ && z <= maxLayerZ) {
2218+ if (layer->isProtected ()) {
2219+ return INVALID_OPERATION;
2220+ }
22182221 }
22192222 }
22202223 }
@@ -2270,9 +2273,12 @@ status_t SurfaceFlinger::captureScreenImplLocked(DisplayID dpy,
22702273
22712274 for (size_t i=0 ; i<count ; ++i) {
22722275 const sp<LayerBase>& layer (layers[i]);
2273- const uint32_t z = layer->drawingState ().z ;
2274- if (z >= minLayerZ && z <= maxLayerZ) {
2275- layer->drawForSreenShot ();
2276+ const uint32_t flags = layer->drawingState ().flags ;
2277+ if (!(flags & ISurfaceComposer::eLayerHidden)) {
2278+ const uint32_t z = layer->drawingState ().z ;
2279+ if (z >= minLayerZ && z <= maxLayerZ) {
2280+ layer->drawForSreenShot ();
2281+ }
22762282 }
22772283 }
22782284
0 commit comments