Merge \\"Restore setCropInTransaction HiddenForCrop behavior.\\" into nyc-dev am: 938a70142e
am: f469be4935
Change-Id: I217dec32a12b6e6ee032e3011d7858cde4e1bb5d
This commit is contained in:
@@ -1289,9 +1289,13 @@ class WindowStateAnimator {
|
||||
void updateSurfaceWindowCrop(Rect clipRect, Rect finalClipRect, boolean recoveringMemory) {
|
||||
if (DEBUG_WINDOW_CROP) Slog.d(TAG, "updateSurfaceWindowCrop: win=" + mWin
|
||||
+ " clipRect=" + clipRect + " finalClipRect=" + finalClipRect);
|
||||
if (!clipRect.equals(mLastClipRect)) {
|
||||
mLastClipRect.set(clipRect);
|
||||
mSurfaceController.setCropInTransaction(clipRect, recoveringMemory);
|
||||
if (clipRect != null) {
|
||||
if (!clipRect.equals(mLastClipRect)) {
|
||||
mLastClipRect.set(clipRect);
|
||||
mSurfaceController.setCropInTransaction(clipRect, recoveringMemory);
|
||||
}
|
||||
} else {
|
||||
mSurfaceController.clearCropInTransaction(recoveringMemory);
|
||||
}
|
||||
if (!finalClipRect.equals(mLastFinalClipRect)) {
|
||||
mLastFinalClipRect.set(finalClipRect);
|
||||
@@ -1480,14 +1484,16 @@ class WindowStateAnimator {
|
||||
mSurfaceController.setPositionAppliesWithResizeInTransaction(true);
|
||||
mSurfaceController.forceScaleableInTransaction(false);
|
||||
}
|
||||
|
||||
Rect clipRect = mTmpClipRect;
|
||||
if (w.inPinnedWorkspace()) {
|
||||
mTmpClipRect.set(0, 0, -1, -1);
|
||||
clipRect = null;
|
||||
task.mStack.getDimBounds(mTmpFinalClipRect);
|
||||
mTmpFinalClipRect.inset(-w.mAttrs.surfaceInsets.left, -w.mAttrs.surfaceInsets.top,
|
||||
-w.mAttrs.surfaceInsets.right, -w.mAttrs.surfaceInsets.bottom);
|
||||
}
|
||||
|
||||
updateSurfaceWindowCrop(mTmpClipRect, mTmpFinalClipRect, recoveringMemory);
|
||||
updateSurfaceWindowCrop(clipRect, mTmpFinalClipRect, recoveringMemory);
|
||||
|
||||
mSurfaceController.setMatrixInTransaction(mDsDx * w.mHScale * mExtraHScale,
|
||||
mDtDx * w.mVScale * mExtraVScale,
|
||||
|
||||
@@ -185,7 +185,7 @@ class WindowSurfaceController {
|
||||
if (SHOW_TRANSACTIONS) logSurface(
|
||||
"CROP " + clipRect.toShortString(), null);
|
||||
try {
|
||||
if (clipRect.width() != 0 && clipRect.height() != 0) {
|
||||
if (clipRect.width() > 0 && clipRect.height() > 0) {
|
||||
mSurfaceControl.setWindowCrop(clipRect);
|
||||
mHiddenForCrop = false;
|
||||
updateVisibility();
|
||||
@@ -203,6 +203,20 @@ class WindowSurfaceController {
|
||||
}
|
||||
}
|
||||
|
||||
void clearCropInTransaction(boolean recoveringMemory) {
|
||||
if (SHOW_TRANSACTIONS) logSurface(
|
||||
"CLEAR CROP", null);
|
||||
try {
|
||||
Rect clipRect = new Rect(0, 0, -1, -1);
|
||||
mSurfaceControl.setWindowCrop(clipRect);
|
||||
} catch (RuntimeException e) {
|
||||
Slog.w(TAG, "Error setting clearing crop of " + this, e);
|
||||
if (!recoveringMemory) {
|
||||
mAnimator.reclaimSomeSurfaceMemory("crop", true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void setFinalCropInTransaction(Rect clipRect) {
|
||||
if (SHOW_TRANSACTIONS) logSurface(
|
||||
"FINAL CROP " + clipRect.toShortString(), null);
|
||||
|
||||
Reference in New Issue
Block a user