Fix for root layer transform inadvertantly changing when redisplayed.

Reviewed by tolmasky.
This commit is contained in:
Gerrit Riessen
2011-03-22 12:34:23 -03:00
committed by Francisco Ryan Tolmasky I
parent 3f271463e5
commit da0b0d6c84
+7 -2
View File
@@ -449,23 +449,28 @@ var CALayerRegisteredRunLoopUpdates = nil;
CGContextClearRect(_context, _CGRectMake(0.0, 0.0, _CGRectGetWidth(_backingStoreFrame), _CGRectGetHeight(_backingStoreFrame)));
// Recomposite
var transform = _transformFromLayer;
var transform;
if (_superlayer)
{
var superlayerTransform = _CALayerGetTransform(_superlayer, nil),
superlayerOrigin = CGPointApplyAffineTransform(_superlayer._bounds.origin, superlayerTransform);
transform = CGAffineTransformConcat(transform, superlayerTransform);
transform = CGAffineTransformConcat(_transformFromLayer, superlayerTransform);
transform.tx -= superlayerOrigin.x;
transform.ty -= superlayerOrigin.y;
}
else
// Copy so we don't affect the original.
transform = CGAffineTransformCreateCopy(_transformFromLayer);
transform.tx -= _CGRectGetMinX(_backingStoreFrame);
transform.ty -= _CGRectGetMinY(_backingStoreFrame);
CGContextSaveGState(_context);
CGContextConcatCTM(_context, transform);//_transformFromView);
if (USE_BUFFER)
{