OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc. All rights
reserved. | 2 * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc. All rights
reserved. |
3 * | 3 * |
4 * Portions are Copyright (C) 1998 Netscape Communications Corporation. | 4 * Portions are Copyright (C) 1998 Netscape Communications Corporation. |
5 * | 5 * |
6 * Other contributors: | 6 * Other contributors: |
7 * Robert O'Callahan <roc+@cs.cmu.edu> | 7 * Robert O'Callahan <roc+@cs.cmu.edu> |
8 * David Baron <dbaron@fas.harvard.edu> | 8 * David Baron <dbaron@fas.harvard.edu> |
9 * Christian Biesinger <cbiesinger@web.de> | 9 * Christian Biesinger <cbiesinger@web.de> |
10 * Randall Jesup <rjesup@wgate.com> | 10 * Randall Jesup <rjesup@wgate.com> |
(...skipping 481 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
492 | 492 |
493 if (renderer()->style()->hasViewportConstrainedPosition()) | 493 if (renderer()->style()->hasViewportConstrainedPosition()) |
494 flags |= HasSeenViewportConstrainedAncestor; | 494 flags |= HasSeenViewportConstrainedAncestor; |
495 | 495 |
496 if (renderer()->hasOverflowClip()) | 496 if (renderer()->hasOverflowClip()) |
497 flags |= HasSeenAncestorWithOverflowClip; | 497 flags |= HasSeenAncestorWithOverflowClip; |
498 | 498 |
499 if ((flags & IsOverflowScroll) && (flags & HasSeenAncestorWithOverflowClip)
&& !m_canSkipRepaintRectsUpdateOnScroll) { | 499 if ((flags & IsOverflowScroll) && (flags & HasSeenAncestorWithOverflowClip)
&& !m_canSkipRepaintRectsUpdateOnScroll) { |
500 // FIXME: We could track the repaint container as we walk down the tree. | 500 // FIXME: We could track the repaint container as we walk down the tree. |
501 repainter().computeRepaintRects(renderer()->containerForRepaint()); | 501 repainter().computeRepaintRects(renderer()->containerForRepaint()); |
| 502 renderer()->setMayNeedInvalidation(true); |
502 } else { | 503 } else { |
503 // Check that RenderLayerRepainter's cached rects are correct. | 504 // Check that RenderLayerRepainter's cached rects are correct. |
504 // FIXME: re-enable these assertions when the issue with table cells is
resolved: https://bugs.webkit.org/show_bug.cgi?id=103432 | 505 // FIXME: re-enable these assertions when the issue with table cells is
resolved: https://bugs.webkit.org/show_bug.cgi?id=103432 |
505 // ASSERT(repainter().m_repaintRect == renderer()->clippedOverflowRectFo
rRepaint(renderer()->containerForRepaint())); | 506 // ASSERT(repainter().m_repaintRect == renderer()->clippedOverflowRectFo
rRepaint(renderer()->containerForRepaint())); |
506 } | 507 } |
507 | 508 |
508 for (RenderLayer* child = firstChild(); child; child = child->nextSibling()) | 509 for (RenderLayer* child = firstChild(); child; child = child->nextSibling()) |
509 child->updateLayerPositionsAfterScroll(geometryMap, flags); | 510 child->updateLayerPositionsAfterScroll(geometryMap, flags); |
510 | 511 |
511 // We don't update our reflection as scrolling is a translation which does n
ot change the size() | 512 // We don't update our reflection as scrolling is a translation which does n
ot change the size() |
(...skipping 422 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
934 return has3DTransform() || m_has3DTransformedDescendant; | 935 return has3DTransform() || m_has3DTransformedDescendant; |
935 | 936 |
936 return has3DTransform(); | 937 return has3DTransform(); |
937 } | 938 } |
938 | 939 |
939 bool RenderLayer::updateLayerPosition() | 940 bool RenderLayer::updateLayerPosition() |
940 { | 941 { |
941 LayoutPoint localPoint; | 942 LayoutPoint localPoint; |
942 LayoutSize inlineBoundingBoxOffset; // We don't put this into the RenderLaye
r x/y for inlines, so we need to subtract it out when done. | 943 LayoutSize inlineBoundingBoxOffset; // We don't put this into the RenderLaye
r x/y for inlines, so we need to subtract it out when done. |
943 | 944 |
| 945 renderer()->setMayNeedInvalidation(true); |
| 946 |
944 if (renderer()->isInline() && renderer()->isRenderInline()) { | 947 if (renderer()->isInline() && renderer()->isRenderInline()) { |
945 RenderInline* inlineFlow = toRenderInline(renderer()); | 948 RenderInline* inlineFlow = toRenderInline(renderer()); |
946 IntRect lineBox = inlineFlow->linesBoundingBox(); | 949 IntRect lineBox = inlineFlow->linesBoundingBox(); |
947 setSize(lineBox.size()); | 950 setSize(lineBox.size()); |
948 inlineBoundingBoxOffset = toSize(lineBox.location()); | 951 inlineBoundingBoxOffset = toSize(lineBox.location()); |
949 localPoint += inlineBoundingBoxOffset; | 952 localPoint += inlineBoundingBoxOffset; |
950 } else if (RenderBox* box = renderBox()) { | 953 } else if (RenderBox* box = renderBox()) { |
951 // FIXME: Is snapping the size really needed here for the RenderBox case
? | 954 // FIXME: Is snapping the size really needed here for the RenderBox case
? |
952 setSize(pixelSnappedIntSize(box->size(), box->location())); | 955 setSize(pixelSnappedIntSize(box->size(), box->location())); |
953 localPoint += box->topLeftLocationOffset(); | 956 localPoint += box->topLeftLocationOffset(); |
(...skipping 3056 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4010 } | 4013 } |
4011 } | 4014 } |
4012 | 4015 |
4013 void showLayerTree(const WebCore::RenderObject* renderer) | 4016 void showLayerTree(const WebCore::RenderObject* renderer) |
4014 { | 4017 { |
4015 if (!renderer) | 4018 if (!renderer) |
4016 return; | 4019 return; |
4017 showLayerTree(renderer->enclosingLayer()); | 4020 showLayerTree(renderer->enclosingLayer()); |
4018 } | 4021 } |
4019 #endif | 4022 #endif |
OLD | NEW |