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

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: Review comments addressed 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 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
119 } 119 }
120 120
121 void reportMemoryUsage(MemoryObjectInfo*) const; 121 void reportMemoryUsage(MemoryObjectInfo*) const;
122 122
123 Row row; 123 Row row;
124 RenderTableRow* rowRenderer; 124 RenderTableRow* rowRenderer;
125 LayoutUnit baseline; 125 LayoutUnit baseline;
126 Length logicalHeight; 126 Length logicalHeight;
127 }; 127 };
128 128
129 struct SpanningRowsHeight {
Julien - ping for review 2013/07/16 17:22:13 It should probably be WTF_MAKE_NONCOPYABLE as we d
130 SpanningRowsHeight()
131 : totalRowsHeight(0)
132 , spanningCellHeightIgnoringBorderSpacing(0)
133 {
134 }
135
136 Vector<int> rowHeight;
137 int totalRowsHeight;
138 int spanningCellHeightIgnoringBorderSpacing;
139 };
140
129 const BorderValue& borderAdjoiningTableStart() const 141 const BorderValue& borderAdjoiningTableStart() const
130 { 142 {
131 if (hasSameDirectionAs(table())) 143 if (hasSameDirectionAs(table()))
132 return style()->borderStart(); 144 return style()->borderStart();
133 145
134 return style()->borderEnd(); 146 return style()->borderEnd();
135 } 147 }
136 148
137 const BorderValue& borderAdjoiningTableEnd() const 149 const BorderValue& borderAdjoiningTableEnd() const
138 { 150 {
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
225 virtual void paintObject(PaintInfo&, const LayoutPoint&); 237 virtual void paintObject(PaintInfo&, const LayoutPoint&);
226 238
227 virtual void imageChanged(WrappedImagePtr, const IntRect* = 0); 239 virtual void imageChanged(WrappedImagePtr, const IntRect* = 0);
228 240
229 virtual bool nodeAtPoint(const HitTestRequest&, HitTestResult&, const HitTes tLocation& locationInContainer, const LayoutPoint& accumulatedOffset, HitTestAct ion) OVERRIDE; 241 virtual bool nodeAtPoint(const HitTestRequest&, HitTestResult&, const HitTes tLocation& locationInContainer, const LayoutPoint& accumulatedOffset, HitTestAct ion) OVERRIDE;
230 242
231 int borderSpacingForRow(unsigned row) const { return m_grid[row].rowRenderer ? table()->vBorderSpacing() : 0; } 243 int borderSpacingForRow(unsigned row) const { return m_grid[row].rowRenderer ? table()->vBorderSpacing() : 0; }
232 244
233 void ensureRows(unsigned); 245 void ensureRows(unsigned);
234 246
247 void calcRowsHeightInRowSpan(RenderTableCell*, struct SpanningRowsHeight&);
248 void distributeExtraRowSpanHeightToPercentRows(RenderTableCell*, int, int, i nt&);
249 void distributeExtraRowSpanHeightToAutoRows(RenderTableCell*, int, int&, Vec tor<int>&);
250 void distributeExtraRowSpanHeightToRemainingRows(RenderTableCell*, int, int& , Vector<int>&);
235 void distributeRowSpanHeightToRows(SpanningRenderTableCells& rowSpanCells); 251 void distributeRowSpanHeightToRows(SpanningRenderTableCells& rowSpanCells);
236 252
237 void distributeExtraLogicalHeightToPercentRows(int& extraLogicalHeight, int totalPercent); 253 void distributeExtraLogicalHeightToPercentRows(int& extraLogicalHeight, int totalPercent);
238 void distributeExtraLogicalHeightToAutoRows(int& extraLogicalHeight, unsigne d autoRowsCount); 254 void distributeExtraLogicalHeightToAutoRows(int& extraLogicalHeight, unsigne d autoRowsCount);
239 void distributeRemainingExtraLogicalHeight(int& extraLogicalHeight); 255 void distributeRemainingExtraLogicalHeight(int& extraLogicalHeight);
240 256
241 void updateBaselineForCell(RenderTableCell*, unsigned row, LayoutUnit& basel ineDescent); 257 void updateBaselineForCell(RenderTableCell*, unsigned row, LayoutUnit& basel ineDescent);
242 258
243 bool hasOverflowingCell() const { return m_overflowingCells.size() || m_forc eSlowPaintPathWithOverflowingCell; } 259 bool hasOverflowingCell() const { return m_overflowingCells.size() || m_forc eSlowPaintPathWithOverflowingCell; }
244 void computeOverflowFromCells(unsigned totalRows, unsigned nEffCols); 260 void computeOverflowFromCells(unsigned totalRows, unsigned nEffCols);
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
299 ASSERT_WITH_SECURITY_IMPLICATION(!object || object->isTableSection()); 315 ASSERT_WITH_SECURITY_IMPLICATION(!object || object->isTableSection());
300 return static_cast<const RenderTableSection*>(object); 316 return static_cast<const RenderTableSection*>(object);
301 } 317 }
302 318
303 // This will catch anyone doing an unnecessary cast. 319 // This will catch anyone doing an unnecessary cast.
304 void toRenderTableSection(const RenderTableSection*); 320 void toRenderTableSection(const RenderTableSection*);
305 321
306 } // namespace WebCore 322 } // namespace WebCore
307 323
308 #endif // RenderTableSection_h 324 #endif // RenderTableSection_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698