Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2)

Side by Side Diff: third_party/WebKit/Source/core/layout/LayoutObject.cpp

Issue 1455153003: Fix animation of 'color' w/ currentColor for SVG 'fill' and 'stroke' (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 12 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698