OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
3 * (C) 1999 Antti Koivisto (koivisto@kde.org) | 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) |
4 * (C) 2000 Dirk Mueller (mueller@kde.org) | 4 * (C) 2000 Dirk Mueller (mueller@kde.org) |
5 * (C) 2004 Allan Sandfeld Jensen (kde@carewolf.com) | 5 * (C) 2004 Allan Sandfeld Jensen (kde@carewolf.com) |
6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2011 Apple Inc. All rights reserv
ed. | 6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2011 Apple Inc. All rights reserv
ed. |
7 * Copyright (C) 2009 Google Inc. All rights reserved. | 7 * Copyright (C) 2009 Google Inc. All rights reserved. |
8 * Copyright (C) 2009 Torch Mobile Inc. All rights reserved. (http://www.torchmo
bile.com/) | 8 * Copyright (C) 2009 Torch Mobile Inc. All rights reserved. (http://www.torchmo
bile.com/) |
9 * | 9 * |
10 * This library is free software; you can redistribute it and/or | 10 * This library is free software; you can redistribute it and/or |
(...skipping 1778 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1789 } | 1789 } |
1790 | 1790 |
1791 // Optimization: for decoration/color property changes, invalidation is only
needed if we have style or text affected by these properties. | 1791 // Optimization: for decoration/color property changes, invalidation is only
needed if we have style or text affected by these properties. |
1792 if (diff.textDecorationOrColorChanged() && !diff.needsPaintInvalidation()) { | 1792 if (diff.textDecorationOrColorChanged() && !diff.needsPaintInvalidation()) { |
1793 if (style()->hasBorder() || style()->hasOutline() | 1793 if (style()->hasBorder() || style()->hasOutline() |
1794 || style()->isBackgroundColorCurrentColor() | 1794 || style()->isBackgroundColorCurrentColor() |
1795 // Skip any text nodes that do not contain text boxes. Whitespace ca
nnot be | 1795 // Skip any text nodes that do not contain text boxes. Whitespace ca
nnot be |
1796 // skipped or we will miss invalidating decorations (e.g., underline
s). | 1796 // skipped or we will miss invalidating decorations (e.g., underline
s). |
1797 || (isText() && !isBR() && toLayoutText(this)->hasTextBoxes()) | 1797 || (isText() && !isBR() && toLayoutText(this)->hasTextBoxes()) |
1798 // Caret is painted in text color. | 1798 // Caret is painted in text color. |
1799 || (isLayoutBlock() && toLayoutBlock(this)->hasCaret())) | 1799 || (isLayoutBlock() && toLayoutBlock(this)->hasCaret()) |
| 1800 || (isSVG() && style()->svgStyle().isFillColorCurrentColor()) |
| 1801 || (isSVG() && style()->svgStyle().isStrokeColorCurrentColor())) |
1800 diff.setNeedsPaintInvalidationObject(); | 1802 diff.setNeedsPaintInvalidationObject(); |
1801 } | 1803 } |
1802 | 1804 |
1803 // The answer to layerTypeRequired() for plugins, iframes, and canvas can ch
ange without the actual | 1805 // The answer to layerTypeRequired() for plugins, iframes, and canvas can ch
ange without the actual |
1804 // style changing, since it depends on whether we decide to composite these
elements. When the | 1806 // style changing, since it depends on whether we decide to composite these
elements. When the |
1805 // layer status of one of these elements changes, we need to force a layout. | 1807 // layer status of one of these elements changes, we need to force a layout. |
1806 if (!diff.needsFullLayout() && style() && isBoxModelObject()) { | 1808 if (!diff.needsFullLayout() && style() && isBoxModelObject()) { |
1807 bool requiresLayer = toLayoutBoxModelObject(this)->layerTypeRequired() !
= NoPaintLayer; | 1809 bool requiresLayer = toLayoutBoxModelObject(this)->layerTypeRequired() !
= NoPaintLayer; |
1808 if (hasLayer() != requiresLayer) | 1810 if (hasLayer() != requiresLayer) |
1809 diff.setNeedsFullLayout(); | 1811 diff.setNeedsFullLayout(); |
(...skipping 1708 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3518 const blink::LayoutObject* root = object1; | 3520 const blink::LayoutObject* root = object1; |
3519 while (root->parent()) | 3521 while (root->parent()) |
3520 root = root->parent(); | 3522 root = root->parent(); |
3521 root->showLayoutTreeAndMark(object1, "*", object2, "-", 0); | 3523 root->showLayoutTreeAndMark(object1, "*", object2, "-", 0); |
3522 } else { | 3524 } else { |
3523 fprintf(stderr, "Cannot showLayoutTree. Root is (nil)\n"); | 3525 fprintf(stderr, "Cannot showLayoutTree. Root is (nil)\n"); |
3524 } | 3526 } |
3525 } | 3527 } |
3526 | 3528 |
3527 #endif | 3529 #endif |
OLD | NEW |