mirror of
https://github.com/LawnchairLauncher/lawnchair.git
synced 2026-03-04 18:06:48 +00:00
Update scaleRectAboutCenter to correctly account for negative left/top values and floating point errors using centerX/Y.
Fix: 290211274 Test: manual. Change-Id: Ieddce683d76c696b5ac3eae4fb9f73a5827a50ad
This commit is contained in:
@@ -334,14 +334,12 @@ public final class Utilities {
|
||||
|
||||
public static void scaleRectAboutCenter(Rect r, float scale) {
|
||||
if (scale != 1.0f) {
|
||||
int cx = r.centerX();
|
||||
int cy = r.centerY();
|
||||
r.offset(-cx, -cy);
|
||||
r.left = (int) (r.left * scale + 0.5f);
|
||||
r.top = (int) (r.top * scale + 0.5f);
|
||||
r.right = (int) (r.right * scale + 0.5f);
|
||||
r.bottom = (int) (r.bottom * scale + 0.5f);
|
||||
r.offset(cx, cy);
|
||||
float cx = r.exactCenterX();
|
||||
float cy = r.exactCenterY();
|
||||
r.left = Math.round(cx + (r.left - cx) * scale);
|
||||
r.top = Math.round(cy + (r.top - cy) * scale);
|
||||
r.right = Math.round(cx + (r.right - cx) * scale);
|
||||
r.bottom = Math.round(cy + (r.bottom - cy) * scale);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user