if (PlatformCALayer* shadowLayer = shadowLayerForTransientZoom())
shadowCALayer = shadowLayer->platformLayer();
- PlatformCALayer* zoomLayer = layerForTransientZoom();
+ RefPtr<PlatformCALayer> zoomLayer = layerForTransientZoom();
+ RefPtr<WebPage> page = &m_webPage;
[CATransaction begin];
- [CATransaction setCompletionBlock:^(void) {
+ [CATransaction setCompletionBlock:[zoomLayer, shadowCALayer, page, scale, origin] () {
zoomLayer->removeAnimationForKey("transientZoomCommit");
if (shadowCALayer)
[shadowCALayer removeAllAnimations];
- applyTransientZoomToPage(scale, origin);
+
+ if (TiledCoreAnimationDrawingArea* drawingArea = static_cast<TiledCoreAnimationDrawingArea*>(page->drawingArea()))
+ drawingArea->applyTransientZoomToPage(scale, origin);
}];
zoomLayer->addAnimationForKey("transientZoomCommit", renderViewAnimation.get());