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

Side by Side Diff: Source/WebCore/rendering/RenderTableRow.cpp

Issue 7833032: Merge 94543 - Style not propagated to anonymous boxes and anonymous (Closed) Base URL: http://svn.webkit.org/repository/webkit/branches/chromium/835/
Patch Set: Created 9 years, 3 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
« no previous file with comments | « Source/WebCore/rendering/RenderTable.cpp ('k') | Source/WebCore/rendering/RenderTableSection.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /** 1 /**
2 * Copyright (C) 1997 Martin Jones (mjones@kde.org) 2 * Copyright (C) 1997 Martin Jones (mjones@kde.org)
3 * (C) 1997 Torben Weis (weis@kde.org) 3 * (C) 1997 Torben Weis (weis@kde.org)
4 * (C) 1998 Waldo Bastian (bastian@kde.org) 4 * (C) 1998 Waldo Bastian (bastian@kde.org)
5 * (C) 1999 Lars Knoll (knoll@kde.org) 5 * (C) 1999 Lars Knoll (knoll@kde.org)
6 * (C) 1999 Antti Koivisto (koivisto@kde.org) 6 * (C) 1999 Antti Koivisto (koivisto@kde.org)
7 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All r ights reserved. 7 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All r ights reserved.
8 * 8 *
9 * This library is free software; you can redistribute it and/or 9 * This library is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU Library General Public 10 * modify it under the terms of the GNU Library General Public
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
67 { 67 {
68 if (!isAnonymous() && document()->usesBeforeAfterRules()) { 68 if (!isAnonymous() && document()->usesBeforeAfterRules()) {
69 children()->updateBeforeAfterContent(this, BEFORE); 69 children()->updateBeforeAfterContent(this, BEFORE);
70 children()->updateBeforeAfterContent(this, AFTER); 70 children()->updateBeforeAfterContent(this, AFTER);
71 } 71 }
72 } 72 }
73 73
74 void RenderTableRow::styleDidChange(StyleDifference diff, const RenderStyle* old Style) 74 void RenderTableRow::styleDidChange(StyleDifference diff, const RenderStyle* old Style)
75 { 75 {
76 RenderBox::styleDidChange(diff, oldStyle); 76 RenderBox::styleDidChange(diff, oldStyle);
77 propagateStyleToAnonymousChildren();
77 78
78 if (parent()) 79 if (parent())
79 updateBeforeAndAfterContent(); 80 updateBeforeAndAfterContent();
80
81 } 81 }
82 82
83 void RenderTableRow::addChild(RenderObject* child, RenderObject* beforeChild) 83 void RenderTableRow::addChild(RenderObject* child, RenderObject* beforeChild)
84 { 84 {
85 // Make sure we don't append things after :after-generated content if we hav e it. 85 // Make sure we don't append things after :after-generated content if we hav e it.
86 if (!beforeChild && isAfterContent(lastChild())) 86 if (!beforeChild && isAfterContent(lastChild()))
87 beforeChild = lastChild(); 87 beforeChild = lastChild();
88 88
89 if (!child->isTableCell()) { 89 if (!child->isTableCell()) {
90 RenderObject* last = beforeChild; 90 RenderObject* last = beforeChild;
91 if (!last) 91 if (!last)
92 last = lastChild(); 92 last = lastChild();
93 if (last && last->isAnonymous() && last->isTableCell() && !isAfterConten t(last) && !isBeforeContent(last)) { 93 if (last && last->isAnonymous() && last->isTableCell() && !last->isBefor eOrAfterContent()) {
94 if (beforeChild == last) 94 if (beforeChild == last)
95 beforeChild = last->firstChild(); 95 beforeChild = last->firstChild();
96 last->addChild(child, beforeChild); 96 last->addChild(child, beforeChild);
97 return; 97 return;
98 } 98 }
99 99
100 // If beforeChild is inside an anonymous cell, insert into the cell. 100 // If beforeChild is inside an anonymous cell, insert into the cell.
101 if (last && !last->isTableCell() && last->parent() && last->parent()->is Anonymous() && !isAfterContent(last->parent()) && !isBeforeContent(last->parent( ))) { 101 if (last && !last->isTableCell() && last->parent() && last->parent()->is Anonymous() && !last->parent()->isBeforeOrAfterContent()) {
102 last->parent()->addChild(child, beforeChild); 102 last->parent()->addChild(child, beforeChild);
103 return; 103 return;
104 } 104 }
105 105
106 RenderTableCell* cell = new (renderArena()) RenderTableCell(document() / * anonymous object */); 106 RenderTableCell* cell = new (renderArena()) RenderTableCell(document() / * anonymous object */);
107 RefPtr<RenderStyle> newStyle = RenderStyle::create(); 107 RefPtr<RenderStyle> newStyle = RenderStyle::create();
108 newStyle->inheritFrom(style()); 108 newStyle->inheritFrom(style());
109 newStyle->setDisplay(TABLE_CELL); 109 newStyle->setDisplay(TABLE_CELL);
110 cell->setStyle(newStyle.release()); 110 cell->setStyle(newStyle.release());
111 addChild(cell, beforeChild); 111 addChild(cell, beforeChild);
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
226 } 226 }
227 } 227 }
228 228
229 void RenderTableRow::imageChanged(WrappedImagePtr, const IntRect*) 229 void RenderTableRow::imageChanged(WrappedImagePtr, const IntRect*)
230 { 230 {
231 // FIXME: Examine cells and repaint only the rect the image paints in. 231 // FIXME: Examine cells and repaint only the rect the image paints in.
232 repaint(); 232 repaint();
233 } 233 }
234 234
235 } // namespace WebCore 235 } // namespace WebCore
OLDNEW
« no previous file with comments | « Source/WebCore/rendering/RenderTable.cpp ('k') | Source/WebCore/rendering/RenderTableSection.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698