OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2009, 2010, 2011 Apple Inc. All rights reserved. | 2 * Copyright (C) 2009, 2010, 2011 Apple Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
6 * are met: | 6 * are met: |
7 * 1. Redistributions of source code must retain the above copyright | 7 * 1. Redistributions of source code must retain the above copyright |
8 * notice, this list of conditions and the following disclaimer. | 8 * notice, this list of conditions and the following disclaimer. |
9 * 2. Redistributions in binary form must reproduce the above copyright | 9 * 2. Redistributions in binary form must reproduce the above copyright |
10 * notice, this list of conditions and the following disclaimer in the | 10 * notice, this list of conditions and the following disclaimer in the |
(...skipping 698 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
709 | 709 |
710 updateMaskLayerGeometry(); | 710 updateMaskLayerGeometry(); |
711 updateTransformGeometry(snappedOffsetFromCompositedAncestor, relativeComposi
tingBounds); | 711 updateTransformGeometry(snappedOffsetFromCompositedAncestor, relativeComposi
tingBounds); |
712 updateForegroundLayerGeometry(contentsSize, clippingBox); | 712 updateForegroundLayerGeometry(contentsSize, clippingBox); |
713 updateBackgroundLayerGeometry(contentsSize); | 713 updateBackgroundLayerGeometry(contentsSize); |
714 updateReflectionLayerGeometry(layersNeedingPaintInvalidation); | 714 updateReflectionLayerGeometry(layersNeedingPaintInvalidation); |
715 updateScrollingLayerGeometry(localCompositingBounds); | 715 updateScrollingLayerGeometry(localCompositingBounds); |
716 updateChildClippingMaskLayerGeometry(); | 716 updateChildClippingMaskLayerGeometry(); |
717 | 717 |
718 if (m_owningLayer.scrollableArea() && m_owningLayer.scrollableArea()->scroll
sOverflow()) | 718 if (m_owningLayer.scrollableArea() && m_owningLayer.scrollableArea()->scroll
sOverflow()) |
719 m_owningLayer.scrollableArea()->positionOverflowControls(IntSize()); | 719 m_owningLayer.scrollableArea()->positionOverflowControls(); |
720 | 720 |
721 if (RuntimeEnabledFeatures::cssCompositingEnabled()) { | 721 if (RuntimeEnabledFeatures::cssCompositingEnabled()) { |
722 updateLayerBlendMode(renderer()->styleRef()); | 722 updateLayerBlendMode(renderer()->styleRef()); |
723 updateIsRootForIsolatedGroup(); | 723 updateIsRootForIsolatedGroup(); |
724 } | 724 } |
725 | 725 |
726 updateContentsRect(); | 726 updateContentsRect(); |
727 updateBackgroundColor(); | 727 updateBackgroundColor(); |
728 updateDrawsContent(); | 728 updateDrawsContent(); |
729 updateContentsOpaque(); | 729 updateContentsOpaque(); |
(...skipping 585 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1315 if (ScrollingCoordinator* scrollingCoordinator = scrollingCoordinatorFromLay
er(m_owningLayer)) { | 1315 if (ScrollingCoordinator* scrollingCoordinator = scrollingCoordinatorFromLay
er(m_owningLayer)) { |
1316 if (horizontalScrollbarLayerChanged) | 1316 if (horizontalScrollbarLayerChanged) |
1317 scrollingCoordinator->scrollableAreaScrollbarLayerDidChange(m_owning
Layer.scrollableArea(), HorizontalScrollbar); | 1317 scrollingCoordinator->scrollableAreaScrollbarLayerDidChange(m_owning
Layer.scrollableArea(), HorizontalScrollbar); |
1318 if (verticalScrollbarLayerChanged) | 1318 if (verticalScrollbarLayerChanged) |
1319 scrollingCoordinator->scrollableAreaScrollbarLayerDidChange(m_owning
Layer.scrollableArea(), VerticalScrollbar); | 1319 scrollingCoordinator->scrollableAreaScrollbarLayerDidChange(m_owning
Layer.scrollableArea(), VerticalScrollbar); |
1320 } | 1320 } |
1321 | 1321 |
1322 return horizontalScrollbarLayerChanged || verticalScrollbarLayerChanged || s
crollCornerLayerChanged; | 1322 return horizontalScrollbarLayerChanged || verticalScrollbarLayerChanged || s
crollCornerLayerChanged; |
1323 } | 1323 } |
1324 | 1324 |
1325 void CompositedLayerMapping::positionOverflowControlsLayers(const IntSize& offse
tFromRoot) | 1325 void CompositedLayerMapping::positionOverflowControlsLayers() |
1326 { | 1326 { |
1327 IntSize offsetFromRenderer = m_graphicsLayer->offsetFromRenderer() - rounded
IntSize(m_owningLayer.subpixelAccumulation()); | 1327 IntSize offsetFromRenderer = m_graphicsLayer->offsetFromRenderer() - rounded
IntSize(m_owningLayer.subpixelAccumulation()); |
1328 if (GraphicsLayer* layer = layerForHorizontalScrollbar()) { | 1328 if (GraphicsLayer* layer = layerForHorizontalScrollbar()) { |
1329 Scrollbar* hBar = m_owningLayer.scrollableArea()->horizontalScrollbar(); | 1329 Scrollbar* hBar = m_owningLayer.scrollableArea()->horizontalScrollbar(); |
1330 if (hBar) { | 1330 if (hBar) { |
1331 layer->setPosition(hBar->frameRect().location() - offsetFromRoot - o
ffsetFromRenderer); | 1331 layer->setPosition(hBar->frameRect().location() - offsetFromRenderer
); |
1332 layer->setSize(hBar->frameRect().size()); | 1332 layer->setSize(hBar->frameRect().size()); |
1333 if (layer->hasContentsLayer()) | 1333 if (layer->hasContentsLayer()) |
1334 layer->setContentsRect(IntRect(IntPoint(), hBar->frameRect().siz
e())); | 1334 layer->setContentsRect(IntRect(IntPoint(), hBar->frameRect().siz
e())); |
1335 } | 1335 } |
1336 layer->setDrawsContent(hBar && !layer->hasContentsLayer()); | 1336 layer->setDrawsContent(hBar && !layer->hasContentsLayer()); |
1337 } | 1337 } |
1338 | 1338 |
1339 if (GraphicsLayer* layer = layerForVerticalScrollbar()) { | 1339 if (GraphicsLayer* layer = layerForVerticalScrollbar()) { |
1340 Scrollbar* vBar = m_owningLayer.scrollableArea()->verticalScrollbar(); | 1340 Scrollbar* vBar = m_owningLayer.scrollableArea()->verticalScrollbar(); |
1341 if (vBar) { | 1341 if (vBar) { |
1342 layer->setPosition(vBar->frameRect().location() - offsetFromRoot - o
ffsetFromRenderer); | 1342 layer->setPosition(vBar->frameRect().location() - offsetFromRenderer
); |
1343 layer->setSize(vBar->frameRect().size()); | 1343 layer->setSize(vBar->frameRect().size()); |
1344 if (layer->hasContentsLayer()) | 1344 if (layer->hasContentsLayer()) |
1345 layer->setContentsRect(IntRect(IntPoint(), vBar->frameRect().siz
e())); | 1345 layer->setContentsRect(IntRect(IntPoint(), vBar->frameRect().siz
e())); |
1346 } | 1346 } |
1347 layer->setDrawsContent(vBar && !layer->hasContentsLayer()); | 1347 layer->setDrawsContent(vBar && !layer->hasContentsLayer()); |
1348 } | 1348 } |
1349 | 1349 |
1350 if (GraphicsLayer* layer = layerForScrollCorner()) { | 1350 if (GraphicsLayer* layer = layerForScrollCorner()) { |
1351 const LayoutRect& scrollCornerAndResizer = m_owningLayer.scrollableArea(
)->scrollCornerAndResizerRect(); | 1351 const LayoutRect& scrollCornerAndResizer = m_owningLayer.scrollableArea(
)->scrollCornerAndResizerRect(); |
1352 layer->setPosition(FloatPoint(scrollCornerAndResizer.location() - offset
FromRenderer)); | 1352 layer->setPosition(FloatPoint(scrollCornerAndResizer.location() - offset
FromRenderer)); |
(...skipping 803 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2156 } | 2156 } |
2157 } | 2157 } |
2158 } | 2158 } |
2159 } | 2159 } |
2160 | 2160 |
2161 static void paintScrollbar(Scrollbar* scrollbar, GraphicsContext& context, const
IntRect& clip) | 2161 static void paintScrollbar(Scrollbar* scrollbar, GraphicsContext& context, const
IntRect& clip) |
2162 { | 2162 { |
2163 if (!scrollbar) | 2163 if (!scrollbar) |
2164 return; | 2164 return; |
2165 | 2165 |
2166 context.save(); | |
2167 const IntRect& scrollbarRect = scrollbar->frameRect(); | 2166 const IntRect& scrollbarRect = scrollbar->frameRect(); |
2168 context.translate(-scrollbarRect.x(), -scrollbarRect.y()); | 2167 TransformRecorder transformRecorder(context, scrollbar->displayItemClient(),
AffineTransform::translation(-scrollbarRect.x(), -scrollbarRect.y())); |
2169 IntRect transformedClip = clip; | 2168 IntRect transformedClip = clip; |
2170 transformedClip.moveBy(scrollbarRect.location()); | 2169 transformedClip.moveBy(scrollbarRect.location()); |
2171 scrollbar->paint(&context, transformedClip); | 2170 scrollbar->paint(&context, transformedClip); |
2172 context.restore(); | |
2173 } | 2171 } |
2174 | 2172 |
2175 // Up-call from compositing layer drawing callback. | 2173 // Up-call from compositing layer drawing callback. |
2176 void CompositedLayerMapping::paintContents(const GraphicsLayer* graphicsLayer, G
raphicsContext& context, GraphicsLayerPaintingPhase graphicsLayerPaintingPhase,
const IntRect& clip) | 2174 void CompositedLayerMapping::paintContents(const GraphicsLayer* graphicsLayer, G
raphicsContext& context, GraphicsLayerPaintingPhase graphicsLayerPaintingPhase,
const IntRect& clip) |
2177 { | 2175 { |
2178 // https://code.google.com/p/chromium/issues/detail?id=343772 | 2176 // https://code.google.com/p/chromium/issues/detail?id=343772 |
2179 DisableCompositingQueryAsserts disabler; | 2177 DisableCompositingQueryAsserts disabler; |
2180 #if ENABLE(ASSERT) | 2178 #if ENABLE(ASSERT) |
2181 // FIXME: once the state machine is ready, this can be removed and we can re
fer to that instead. | 2179 // FIXME: once the state machine is ready, this can be removed and we can re
fer to that instead. |
2182 if (Page* page = renderer()->frame()->page()) | 2180 if (Page* page = renderer()->frame()->page()) |
(...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2356 } else if (graphicsLayer == m_scrollingBlockSelectionLayer.get()) { | 2354 } else if (graphicsLayer == m_scrollingBlockSelectionLayer.get()) { |
2357 name = "Scrolling Block Selection Layer"; | 2355 name = "Scrolling Block Selection Layer"; |
2358 } else { | 2356 } else { |
2359 ASSERT_NOT_REACHED(); | 2357 ASSERT_NOT_REACHED(); |
2360 } | 2358 } |
2361 | 2359 |
2362 return name; | 2360 return name; |
2363 } | 2361 } |
2364 | 2362 |
2365 } // namespace blink | 2363 } // namespace blink |
OLD | NEW |