summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Mark Renouf <mrenouf@google.com> 2021-06-22 10:15:40 -0400
committer Mark Renouf <mrenouf@google.com> 2021-06-22 17:16:01 +0000
commit1c996ad2871db8737fbb21f98b84b237edcbbe69 (patch)
treebed93b26259abcb03e570e199229e1824102213e
parente1ae3b743e4e6630a52658a43d97166ce39e3398 (diff)
Fixes long screenshot landscape and split window bugs
Fixes incorrect view transform in ViewRenderer The tranform was mapping to on-screen coordinates, where in-window position is needed. Bug: 183045126 Bug: 189289758 Bug: 189235588 Test: manual, long screenshot the bottom app in split window mode Change-Id: Ibaa9987b229f9e8ec0a1002ee84d797ca6026fb9
-rw-r--r--core/java/com/android/internal/view/ScrollCaptureViewSupport.java15
1 files changed, 5 insertions, 10 deletions
diff --git a/core/java/com/android/internal/view/ScrollCaptureViewSupport.java b/core/java/com/android/internal/view/ScrollCaptureViewSupport.java
index 8aa2d57e8ea6..9e09006f608d 100644
--- a/core/java/com/android/internal/view/ScrollCaptureViewSupport.java
+++ b/core/java/com/android/internal/view/ScrollCaptureViewSupport.java
@@ -198,12 +198,9 @@ public class ScrollCaptureViewSupport<V extends View> implements ScrollCaptureCa
private static final float LIGHT_RADIUS_DP = 800;
private static final String TAG = "ViewRenderer";
- private HardwareRenderer mRenderer;
- private RenderNode mCaptureRenderNode;
- private final RectF mTempRectF = new RectF();
- private final Rect mSourceRect = new Rect();
+ private final HardwareRenderer mRenderer;
+ private final RenderNode mCaptureRenderNode;
private final Rect mTempRect = new Rect();
- private final Matrix mTempMatrix = new Matrix();
private final int[] mTempLocation = new int[2];
private long mLastRenderedSourceDrawingId = -1;
private Surface mSurface;
@@ -313,11 +310,9 @@ public class ScrollCaptureViewSupport<V extends View> implements ScrollCaptureCa
}
private void transformToRoot(View local, Rect localRect, Rect outRect) {
- mTempMatrix.reset();
- local.transformMatrixToGlobal(mTempMatrix);
- mTempRectF.set(localRect);
- mTempMatrix.mapRect(mTempRectF);
- mTempRectF.round(outRect);
+ local.getLocationInWindow(mTempLocation);
+ outRect.set(localRect);
+ outRect.offset(mTempLocation[0], mTempLocation[1]);
}
public void setColorMode(@ColorMode int colorMode) {