diff options
Diffstat (limited to 'services/surfaceflinger/LayerRejecter.cpp')
-rw-r--r-- | services/surfaceflinger/LayerRejecter.cpp | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/services/surfaceflinger/LayerRejecter.cpp b/services/surfaceflinger/LayerRejecter.cpp index b2424d0ed2..0b302ebe03 100644 --- a/services/surfaceflinger/LayerRejecter.cpp +++ b/services/surfaceflinger/LayerRejecter.cpp @@ -37,7 +37,7 @@ LayerRejecter::LayerRejecter(Layer::State& front, mStickyTransformSet(stickySet), mName(name), mOverrideScalingMode(overrideScalingMode), - mFreezeGeometryUpdates(freezePositionUpdates) {} + mFreezePositionUpdates(freezePositionUpdates) {} bool LayerRejecter::reject(const sp<GraphicBuffer>& buf, const BufferItem& item) { if (buf == NULL) { @@ -115,7 +115,17 @@ bool LayerRejecter::reject(const sp<GraphicBuffer>& buf, const BufferItem& item) mRecomputeVisibleRegions = true; } - mFreezeGeometryUpdates = false; + if (mFront.crop != mFront.requestedCrop) { + mFront.crop = mFront.requestedCrop; + mCurrent.crop = mFront.requestedCrop; + mRecomputeVisibleRegions = true; + } + if (mFront.finalCrop != mFront.requestedFinalCrop) { + mFront.finalCrop = mFront.requestedFinalCrop; + mCurrent.finalCrop = mFront.requestedFinalCrop; + mRecomputeVisibleRegions = true; + } + mFreezePositionUpdates = false; return false; } |