Apply final crop during surface preservation

Apply stack crop to the preserved surface so that it doesn't stick over
the dock divider.

bug: 28567495
Change-Id: Ib7a9d8ec82a7752ecbef60a86f441e35e16ac877
This commit is contained in:
Chong Zhang
2016-05-16 18:25:45 -07:00
parent 53c33d9701
commit cc3eccf578

View File

@@ -1298,6 +1298,9 @@ class WindowStateAnimator {
if (!finalClipRect.equals(mLastFinalClipRect)) {
mLastFinalClipRect.set(finalClipRect);
mSurfaceController.setFinalCropInTransaction(finalClipRect);
if (mDestroyPreservedSurfaceUponRedraw && mPendingDestroySurface != null) {
mPendingDestroySurface.setFinalCropInTransaction(finalClipRect);
}
}
}
@@ -1370,7 +1373,8 @@ class WindowStateAnimator {
// If we are animating, we either apply the clip before applying all the animation
// transformation or after all the transformation.
final boolean useFinalClipRect = isAnimationSet() && stackClip == STACK_CLIP_AFTER_ANIM;
final boolean useFinalClipRect = isAnimationSet() && stackClip == STACK_CLIP_AFTER_ANIM
|| mDestroyPreservedSurfaceUponRedraw;
// We need to do some acrobatics with surface position, because their clip region is
// relative to the inside of the surface, but the stack bounds aren't.