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

Side by Side Diff: Source/core/layout/LayoutTableSection.cpp

Issue 1121173002: Fix shrink-to-fit when children's writing-mode is orthogonal (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: float tests added + cleanup a bit Created 5 years, 7 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, 2008, 2009, 2010, 2013 Apple Inc. All r ights reserved. 7 * Copyright (C) 2003, 2004, 2005, 2006, 2008, 2009, 2010, 2013 Apple Inc. All r ights 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 796 matching lines...) Expand 10 before | Expand all | Expand 10 after
807 807
808 unsigned endCol = startColumn; 808 unsigned endCol = startColumn;
809 unsigned cspan = cell->colSpan(); 809 unsigned cspan = cell->colSpan();
810 while (cspan && endCol < cols) { 810 while (cspan && endCol < cols) {
811 ASSERT(endCol < table()->columns().size()); 811 ASSERT(endCol < table()->columns().size());
812 cspan -= table()->columns()[endCol].span; 812 cspan -= table()->columns()[endCol].span;
813 endCol++; 813 endCol++;
814 } 814 }
815 int tableLayoutLogicalWidth = columnPos[endCol] - columnPos[startCol umn] - table()->hBorderSpacing(); 815 int tableLayoutLogicalWidth = columnPos[endCol] - columnPos[startCol umn] - table()->hBorderSpacing();
816 cell->setCellLogicalWidth(tableLayoutLogicalWidth, layouter); 816 cell->setCellLogicalWidth(tableLayoutLogicalWidth, layouter);
817
818 if (cell->needsRecalcLogicalWidthAfterLayoutChildren()) {
819 cell->clearNeedsRecalcLogicalWidthAfterLayoutChildren();
820 cell->setPreferredLogicalWidthsDirty(MarkOnlyThis);
821 table()->setNeedsRecalcLogicalWidthAfterLayoutChildren();
822 }
817 } 823 }
818 824
819 if (LayoutTableRow* rowLayoutObject = m_grid[r].rowLayoutObject) { 825 if (LayoutTableRow* rowLayoutObject = m_grid[r].rowLayoutObject) {
820 if (!rowLayoutObject->needsLayout()) 826 if (!rowLayoutObject->needsLayout())
821 rowLayoutObject->markForPaginationRelayoutIfNeeded(layouter); 827 rowLayoutObject->markForPaginationRelayoutIfNeeded(layouter);
822 rowLayoutObject->layoutIfNeeded(); 828 rowLayoutObject->layoutIfNeeded();
823 } 829 }
824 } 830 }
825 831
826 clearNeedsLayout(); 832 clearNeedsLayout();
(...skipping 790 matching lines...) Expand 10 before | Expand all | Expand 10 after
1617 // FIXME: The table's direction should determine our row's direction, not th e section's (see bug 96691). 1623 // FIXME: The table's direction should determine our row's direction, not th e section's (see bug 96691).
1618 if (!style()->isLeftToRightDirection()) 1624 if (!style()->isLeftToRightDirection())
1619 cellLocation.setX(table()->columnPositions()[table()->numEffCols()] - ta ble()->columnPositions()[table()->colToEffCol(cell->col() + cell->colSpan())] + horizontalBorderSpacing); 1625 cellLocation.setX(table()->columnPositions()[table()->numEffCols()] - ta ble()->columnPositions()[table()->colToEffCol(cell->col() + cell->colSpan())] + horizontalBorderSpacing);
1620 else 1626 else
1621 cellLocation.setX(table()->columnPositions()[effectiveColumn] + horizont alBorderSpacing); 1627 cellLocation.setX(table()->columnPositions()[effectiveColumn] + horizont alBorderSpacing);
1622 1628
1623 cell->setLogicalLocation(cellLocation); 1629 cell->setLogicalLocation(cellLocation);
1624 } 1630 }
1625 1631
1626 } // namespace blink 1632 } // namespace blink
OLDNEW
« Source/core/layout/LayoutBlockFlow.cpp ('K') | « Source/core/layout/LayoutTable.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698