OLD | NEW |
---|---|
1 /* | 1 /* |
2 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserved. | 2 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserved. |
3 * | 3 * |
4 * This library is free software; you can redistribute it and/or | 4 * This library is free software; you can redistribute it and/or |
5 * modify it under the terms of the GNU Library General Public | 5 * modify it under the terms of the GNU Library General Public |
6 * License as published by the Free Software Foundation; either | 6 * License as published by the Free Software Foundation; either |
7 * version 2 of the License, or (at your option) any later version. | 7 * version 2 of the License, or (at your option) any later version. |
8 * | 8 * |
9 * This library is distributed in the hope that it will be useful, | 9 * This library is distributed in the hope that it will be useful, |
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of | 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
(...skipping 1124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1135 } else { | 1135 } else { |
1136 // Paint our background, border and box-shadow. | 1136 // Paint our background, border and box-shadow. |
1137 paintBoxDecorations(paintInfo, paintOffset); | 1137 paintBoxDecorations(paintInfo, paintOffset); |
1138 } | 1138 } |
1139 } | 1139 } |
1140 | 1140 |
1141 if (paintInfo.phase == PaintPhaseMask) | 1141 if (paintInfo.phase == PaintPhaseMask) |
1142 return; | 1142 return; |
1143 | 1143 |
1144 PaintPhase paintPhase = paintInfo.phase == PaintPhaseChildOutlines ? PaintPh aseOutline : paintInfo.phase; | 1144 PaintPhase paintPhase = paintInfo.phase == PaintPhaseChildOutlines ? PaintPh aseOutline : paintInfo.phase; |
1145 PaintInfo childInfo(paintInfo); | |
1146 childInfo.phase = paintPhase; | |
1147 childInfo.updatePaintingRootForChildren(&renderer()); | |
1148 | 1145 |
1149 // Paint our children. | 1146 // Paint our children. |
1150 if (paintPhase != PaintPhaseSelfOutline) { | 1147 if (paintPhase != PaintPhaseSelfOutline) { |
1148 PaintInfo childInfo(paintInfo); | |
1149 childInfo.phase = paintPhase; | |
1150 childInfo.updatePaintingRootForChildren(&renderer()); | |
Julien - ping for review
2014/05/22 09:26:03
You're setting childInfo.paintingRoot to a non-NUL
spartha
2014/05/22 12:24:15
updatePaintingRootForChildren does not set the pai
Julien - ping for review
2014/06/05 22:01:35
OK, this function is confusingly named for sure :-
| |
1151 bool paintingRootCleared = !childInfo.paintingRoot; | |
esprehn
2014/05/20 05:56:15
Why do you only ever clear the first one? That doe
spartha
2014/05/20 09:24:10
I am looking to paint just the InlineBox that hold
| |
1152 | |
1151 for (InlineBox* curr = firstChild(); curr; curr = curr->nextOnLine()) { | 1153 for (InlineBox* curr = firstChild(); curr; curr = curr->nextOnLine()) { |
1152 if (curr->renderer().isText() || !curr->boxModelObject()->hasSelfPai ntingLayer()) | 1154 if (curr->renderer().isText() || !curr->boxModelObject()->hasSelfPai ntingLayer()) { |
esprehn
2014/05/20 05:56:15
This needs a better test, you should be able to te
spartha
2014/05/20 09:24:10
I agree, that this mode of testing is not effectiv
| |
1153 curr->paint(childInfo, paintOffset, lineTop, lineBottom); | 1155 // crbug.com/101204. Clear the paintRoot to allow the paint to g o through if the |
1156 // paintingRoot is a descendant of the InlineBox. | |
1157 if (!paintingRootCleared && childInfo.paintingRoot->isDescendant Of(&curr->renderer())) { | |
Julien - ping for review
2014/05/22 09:26:03
That potentially makes this loop go to the root al
spartha
2014/05/22 12:24:15
There are sufficient checks in place not to affect
| |
1158 PaintInfo clearPaintRoot(childInfo); | |
1159 clearPaintRoot.paintingRoot = 0; | |
1160 curr->paint(clearPaintRoot, paintOffset, lineTop, lineBottom ); | |
1161 paintingRootCleared = true; | |
esprehn
2014/05/20 05:56:15
Nothing reads this, why assign it?
spartha
2014/05/20 09:24:10
paintingRootCleared is being evaluated @1157. I ad
| |
1162 } else { | |
1163 curr->paint(childInfo, paintOffset, lineTop, lineBottom); | |
1164 } | |
1165 } | |
1154 } | 1166 } |
1155 } | 1167 } |
1156 } | 1168 } |
1157 | 1169 |
1158 void InlineFlowBox::paintFillLayers(const PaintInfo& paintInfo, const Color& c, const FillLayer* fillLayer, const LayoutRect& rect, CompositeOperator op) | 1170 void InlineFlowBox::paintFillLayers(const PaintInfo& paintInfo, const Color& c, const FillLayer* fillLayer, const LayoutRect& rect, CompositeOperator op) |
1159 { | 1171 { |
1160 if (!fillLayer) | 1172 if (!fillLayer) |
1161 return; | 1173 return; |
1162 paintFillLayers(paintInfo, c, fillLayer->next(), rect, op); | 1174 paintFillLayers(paintInfo, c, fillLayer->next(), rect, op); |
1163 paintFillLayer(paintInfo, c, fillLayer, rect, op); | 1175 paintFillLayer(paintInfo, c, fillLayer, rect, op); |
(...skipping 492 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1656 ASSERT(child->prevOnLine() == prev); | 1668 ASSERT(child->prevOnLine() == prev); |
1657 prev = child; | 1669 prev = child; |
1658 } | 1670 } |
1659 ASSERT(prev == m_lastChild); | 1671 ASSERT(prev == m_lastChild); |
1660 #endif | 1672 #endif |
1661 } | 1673 } |
1662 | 1674 |
1663 #endif | 1675 #endif |
1664 | 1676 |
1665 } // namespace WebCore | 1677 } // namespace WebCore |
OLD | NEW |