diff options
Diffstat (limited to 'graphics/java/android/view/PixelCopy.java')
-rw-r--r-- | graphics/java/android/view/PixelCopy.java | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/graphics/java/android/view/PixelCopy.java b/graphics/java/android/view/PixelCopy.java index a14609f3e924..2797a4daa925 100644 --- a/graphics/java/android/view/PixelCopy.java +++ b/graphics/java/android/view/PixelCopy.java @@ -263,8 +263,16 @@ public final class PixelCopy { "Only able to copy windows with decor views"); } Surface surface = null; - if (source.peekDecorView().getViewRootImpl() != null) { - surface = source.peekDecorView().getViewRootImpl().mSurface; + final ViewRootImpl root = source.peekDecorView().getViewRootImpl(); + if (root != null) { + surface = root.mSurface; + final Rect surfaceInsets = root.mWindowAttributes.surfaceInsets; + if (srcRect == null) { + srcRect = new Rect(surfaceInsets.left, surfaceInsets.top, + root.mWidth + surfaceInsets.left, root.mHeight + surfaceInsets.top); + } else { + srcRect.offset(surfaceInsets.left, surfaceInsets.top); + } } if (surface == null || !surface.isValid()) { throw new IllegalArgumentException( |