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

Side by Side Diff: Source/core/rendering/RenderTableSection.h

Issue 18050007: Height of fixed height cell is not proper when cell's row is under row spanning cell. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 7 years, 5 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) 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, 2009 Apple Inc. All rights reserved. 7 * Copyright (C) 2003, 2004, 2005, 2006, 2009 Apple Inc. All rights 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 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
115 , baseline() 115 , baseline()
116 { 116 {
117 } 117 }
118 118
119 Row row; 119 Row row;
120 RenderTableRow* rowRenderer; 120 RenderTableRow* rowRenderer;
121 LayoutUnit baseline; 121 LayoutUnit baseline;
122 Length logicalHeight; 122 Length logicalHeight;
123 }; 123 };
124 124
125 struct SpanningRowsHeight {
126 WTF_MAKE_NONCOPYABLE(SpanningRowsHeight);
127
128 public:
129 SpanningRowsHeight()
130 : totalRowsHeight(0)
131 , spanningCellHeightIgnoringBorderSpacing(0)
132 {
133 }
134
135 Vector<int> rowHeight;
136 int totalRowsHeight;
137 int spanningCellHeightIgnoringBorderSpacing;
138 };
139
125 const BorderValue& borderAdjoiningTableStart() const 140 const BorderValue& borderAdjoiningTableStart() const
126 { 141 {
127 if (hasSameDirectionAs(table())) 142 if (hasSameDirectionAs(table()))
128 return style()->borderStart(); 143 return style()->borderStart();
129 144
130 return style()->borderEnd(); 145 return style()->borderEnd();
131 } 146 }
132 147
133 const BorderValue& borderAdjoiningTableEnd() const 148 const BorderValue& borderAdjoiningTableEnd() const
134 { 149 {
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
219 virtual void paintObject(PaintInfo&, const LayoutPoint&); 234 virtual void paintObject(PaintInfo&, const LayoutPoint&);
220 235
221 virtual void imageChanged(WrappedImagePtr, const IntRect* = 0); 236 virtual void imageChanged(WrappedImagePtr, const IntRect* = 0);
222 237
223 virtual bool nodeAtPoint(const HitTestRequest&, HitTestResult&, const HitTes tLocation& locationInContainer, const LayoutPoint& accumulatedOffset, HitTestAct ion) OVERRIDE; 238 virtual bool nodeAtPoint(const HitTestRequest&, HitTestResult&, const HitTes tLocation& locationInContainer, const LayoutPoint& accumulatedOffset, HitTestAct ion) OVERRIDE;
224 239
225 int borderSpacingForRow(unsigned row) const { return m_grid[row].rowRenderer ? table()->vBorderSpacing() : 0; } 240 int borderSpacingForRow(unsigned row) const { return m_grid[row].rowRenderer ? table()->vBorderSpacing() : 0; }
226 241
227 void ensureRows(unsigned); 242 void ensureRows(unsigned);
228 243
244 void populateSpanningRowsHeightFromCell(RenderTableCell*, struct SpanningRow sHeight&);
245 void distributeExtraRowSpanHeightToPercentRows(RenderTableCell*, int, int&, Vector<int>&);
246 void distributeExtraRowSpanHeightToAutoRows(RenderTableCell*, int, int&, Vec tor<int>&);
247 void distributeExtraRowSpanHeightToRemainingRows(RenderTableCell*, int, int& , Vector<int>&);
229 void distributeRowSpanHeightToRows(SpanningRenderTableCells& rowSpanCells); 248 void distributeRowSpanHeightToRows(SpanningRenderTableCells& rowSpanCells);
230 249
231 void distributeExtraLogicalHeightToPercentRows(int& extraLogicalHeight, int totalPercent); 250 void distributeExtraLogicalHeightToPercentRows(int& extraLogicalHeight, int totalPercent);
232 void distributeExtraLogicalHeightToAutoRows(int& extraLogicalHeight, unsigne d autoRowsCount); 251 void distributeExtraLogicalHeightToAutoRows(int& extraLogicalHeight, unsigne d autoRowsCount);
233 void distributeRemainingExtraLogicalHeight(int& extraLogicalHeight); 252 void distributeRemainingExtraLogicalHeight(int& extraLogicalHeight);
234 253
235 void updateBaselineForCell(RenderTableCell*, unsigned row, LayoutUnit& basel ineDescent); 254 void updateBaselineForCell(RenderTableCell*, unsigned row, LayoutUnit& basel ineDescent);
236 255
237 bool hasOverflowingCell() const { return m_overflowingCells.size() || m_forc eSlowPaintPathWithOverflowingCell; } 256 bool hasOverflowingCell() const { return m_overflowingCells.size() || m_forc eSlowPaintPathWithOverflowingCell; }
238 void computeOverflowFromCells(unsigned totalRows, unsigned nEffCols); 257 void computeOverflowFromCells(unsigned totalRows, unsigned nEffCols);
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
293 ASSERT_WITH_SECURITY_IMPLICATION(!object || object->isTableSection()); 312 ASSERT_WITH_SECURITY_IMPLICATION(!object || object->isTableSection());
294 return static_cast<const RenderTableSection*>(object); 313 return static_cast<const RenderTableSection*>(object);
295 } 314 }
296 315
297 // This will catch anyone doing an unnecessary cast. 316 // This will catch anyone doing an unnecessary cast.
298 void toRenderTableSection(const RenderTableSection*); 317 void toRenderTableSection(const RenderTableSection*);
299 318
300 } // namespace WebCore 319 } // namespace WebCore
301 320
302 #endif // RenderTableSection_h 321 #endif // RenderTableSection_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698