mirror of
https://github.com/cappuccino/cappuccino.git
synced 2026-09-14 06:31:27 +00:00
Merge pull request #3241 from daboe01/setBoundsSize-fix
Fixed: scale accumulation in scaleUnitSquareToSize: when setting bounds size
This commit is contained in:
+19
-2
@@ -1474,6 +1474,24 @@ var CPViewHighDPIDrawingEnabled = YES;
|
||||
origin.y *= size.height / frameSize.height;
|
||||
}
|
||||
|
||||
var newScaleSize;
|
||||
|
||||
if (size && size.width !== 0 && size.height !== 0 && frameSize)
|
||||
newScaleSize = CGSizeMake(frameSize.width / size.width, frameSize.height / size.height);
|
||||
else
|
||||
newScaleSize = CGSizeMake(1.0, 1.0);
|
||||
|
||||
// Only update and propagate if the scale factor has actually changed
|
||||
if (!CGSizeEqualToSize(_scaleSize, newScaleSize))
|
||||
{
|
||||
[self willChangeValueForKey:@"scaleSize"];
|
||||
_scaleSize = newScaleSize;
|
||||
_isScaled = (_scaleSize.width !== 1.0 || _scaleSize.height !== 1.0);
|
||||
[self didChangeValueForKey:@"scaleSize"];
|
||||
|
||||
[self _scaleSizeUnitSquareToSize:CGSizeMake(1.0, 1.0)];
|
||||
}
|
||||
|
||||
if (_layer)
|
||||
[_layer _owningViewBoundsChanged];
|
||||
|
||||
@@ -1487,7 +1505,6 @@ var CPViewHighDPIDrawingEnabled = YES;
|
||||
[self _updateTrackingAreasWithRecursion:YES];
|
||||
}
|
||||
|
||||
|
||||
/*!
|
||||
Notifies subviews that the superview changed size.
|
||||
@param aSize the size of the old superview
|
||||
@@ -2606,7 +2623,7 @@ setBoundsOrigin:
|
||||
*/
|
||||
- (void)_scaleSizeUnitSquareToSize:(CGSize)aSize
|
||||
{
|
||||
_hierarchyScaleSize = CGSizeMakeCopy([_superview _hierarchyScaleSize]);
|
||||
_hierarchyScaleSize = _superview ? CGSizeMakeCopy([_superview _hierarchyScaleSize]) : CGSizeMake(1.0, 1.0);
|
||||
|
||||
if (_isScaled)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user