From 10fb3e6d313329ebee2b85e501874cacb950de32 Mon Sep 17 00:00:00 2001 From: daboe01 Date: Sat, 20 Jun 2026 14:35:15 +0200 Subject: [PATCH] Fixed: scale accumulation in scaleUnitSquareToSize: when setting bounds size --- AppKit/CPView.j | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/AppKit/CPView.j b/AppKit/CPView.j index 31b26f017..e8ac8a4b4 100644 --- a/AppKit/CPView.j +++ b/AppKit/CPView.j @@ -1474,6 +1474,21 @@ var CPViewHighDPIDrawingEnabled = YES; origin.y *= size.height / frameSize.height; } + [self willChangeValueForKey:@"scaleSize"]; + if (size.width === 0 || size.height === 0) + { + _scaleSize = CGSizeMake(1.0, 1.0); + } + else + { + _scaleSize = CGSizeMake(frameSize.width / size.width, frameSize.height / size.height); + } + _isScaled = (_scaleSize.width !== 1.0 || _scaleSize.height !== 1.0); + [self didChangeValueForKey:@"scaleSize"]; + + // Recompute hierarchy scale size for this view and its descendants + [self _scaleSizeUnitSquareToSize:CGSizeMake(1.0, 1.0)]; + if (_layer) [_layer _owningViewBoundsChanged];