Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5c97ff23 authored by Adrian Roos's avatar Adrian Roos
Browse files

Wallpaper: Fix letterboxing if wallpaper is scaled but not cropped

Fixes a bug where the wrong part of an image was decoded if
the image needed to be scaled but not cropped.

Change-Id: I011e59d85b526097ef1daabd63805c7cdc74c17b
Fixes: 31112957
parent e13df588
Loading
Loading
Loading
Loading
+9 −1
Original line number Original line Diff line number Diff line
@@ -352,9 +352,17 @@ public class WallpaperManagerService extends IWallpaperManager.Stub {
                        (cropHint.right > options.outWidth ? options.outWidth - cropHint.right : 0),
                        (cropHint.right > options.outWidth ? options.outWidth - cropHint.right : 0),
                        (cropHint.bottom > options.outHeight ? options.outHeight - cropHint.bottom : 0));
                        (cropHint.bottom > options.outHeight ? options.outHeight - cropHint.bottom : 0));


                // If the crop hint was larger than the image we just overshot. Patch things up.
                if (cropHint.left < 0) {
                    cropHint.left = 0;
                }
                if (cropHint.top < 0) {
                    cropHint.top = 0;
                }

                // Don't bother cropping if what we're left with is identity
                // Don't bother cropping if what we're left with is identity
                needCrop = (options.outHeight > cropHint.height()
                needCrop = (options.outHeight > cropHint.height()
                        && options.outWidth > cropHint.width());
                        || options.outWidth > cropHint.width());
            }
            }


            // scale if the crop height winds up not matching the recommended metrics
            // scale if the crop height winds up not matching the recommended metrics