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

Side by Side Diff: Source/core/rendering/RenderTable.cpp

Issue 341523002: Resolve percent lengths for abs. positioned tables against padding box. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Specifically return a LayoutUnit in ternary operation. Created 6 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
« no previous file with comments | « Source/core/rendering/RenderBox.cpp ('k') | no next file » | 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, 2013 Apple Inc. All rights reserved. 7 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2013 Apple Inc. All rights reserved.
8 * Copyright (C) 2006 Alexey Proskuryakov (ap@nypop.com) 8 * Copyright (C) 2006 Alexey Proskuryakov (ap@nypop.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 240 matching lines...) Expand 10 before | Expand all | Expand 10 after
251 LogicalExtentComputedValues computedValues; 251 LogicalExtentComputedValues computedValues;
252 computePositionedLogicalWidth(computedValues); 252 computePositionedLogicalWidth(computedValues);
253 setLogicalWidth(computedValues.m_extent); 253 setLogicalWidth(computedValues.m_extent);
254 setLogicalLeft(computedValues.m_position); 254 setLogicalLeft(computedValues.m_position);
255 setMarginStart(computedValues.m_margins.m_start); 255 setMarginStart(computedValues.m_margins.m_start);
256 setMarginEnd(computedValues.m_margins.m_end); 256 setMarginEnd(computedValues.m_margins.m_end);
257 } 257 }
258 258
259 RenderBlock* cb = containingBlock(); 259 RenderBlock* cb = containingBlock();
260 260
261 LayoutUnit availableLogicalWidth = containingBlockLogicalWidthForContent(); 261 LayoutUnit availableLogicalWidth = containingBlockLogicalWidthForContent() + (isOutOfFlowPositioned() ? cb->paddingLogicalWidth() : LayoutUnit(0));
262 bool hasPerpendicularContainingBlock = cb->style()->isHorizontalWritingMode( ) != style()->isHorizontalWritingMode(); 262 bool hasPerpendicularContainingBlock = cb->style()->isHorizontalWritingMode( ) != style()->isHorizontalWritingMode();
263 LayoutUnit containerWidthInInlineDirection = hasPerpendicularContainingBlock ? perpendicularContainingBlockLogicalHeight() : availableLogicalWidth; 263 LayoutUnit containerWidthInInlineDirection = hasPerpendicularContainingBlock ? perpendicularContainingBlockLogicalHeight() : availableLogicalWidth;
264 264
265 Length styleLogicalWidth = style()->logicalWidth(); 265 Length styleLogicalWidth = style()->logicalWidth();
266 if ((styleLogicalWidth.isSpecified() && styleLogicalWidth.isPositive()) || s tyleLogicalWidth.isIntrinsic()) 266 if ((styleLogicalWidth.isSpecified() && styleLogicalWidth.isPositive()) || s tyleLogicalWidth.isIntrinsic())
267 setLogicalWidth(convertStyleLogicalWidthToComputedWidth(styleLogicalWidt h, containerWidthInInlineDirection)); 267 setLogicalWidth(convertStyleLogicalWidthToComputedWidth(styleLogicalWidt h, containerWidthInInlineDirection));
268 else { 268 else {
269 // Subtract out any fixed margins from our available width for auto widt h tables. 269 // Subtract out any fixed margins from our available width for auto widt h tables.
270 LayoutUnit marginStart = minimumValueForLength(style()->marginStart(), a vailableLogicalWidth); 270 LayoutUnit marginStart = minimumValueForLength(style()->marginStart(), a vailableLogicalWidth);
271 LayoutUnit marginEnd = minimumValueForLength(style()->marginEnd(), avail ableLogicalWidth); 271 LayoutUnit marginEnd = minimumValueForLength(style()->marginEnd(), avail ableLogicalWidth);
(...skipping 1147 matching lines...) Expand 10 before | Expand all | Expand 10 after
1419 const BorderValue& RenderTable::tableEndBorderAdjoiningCell(const RenderTableCel l* cell) const 1419 const BorderValue& RenderTable::tableEndBorderAdjoiningCell(const RenderTableCel l* cell) const
1420 { 1420 {
1421 ASSERT(cell->isFirstOrLastCellInRow()); 1421 ASSERT(cell->isFirstOrLastCellInRow());
1422 if (hasSameDirectionAs(cell->row())) 1422 if (hasSameDirectionAs(cell->row()))
1423 return style()->borderEnd(); 1423 return style()->borderEnd();
1424 1424
1425 return style()->borderStart(); 1425 return style()->borderStart();
1426 } 1426 }
1427 1427
1428 } 1428 }
OLDNEW
« no previous file with comments | « Source/core/rendering/RenderBox.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698