OLD | NEW |
---|---|
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 295 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
306 // Our algorithm matches Firefox. Extra spanning height would be distributed Only in first percent height rows | 306 // Our algorithm matches Firefox. Extra spanning height would be distributed Only in first percent height rows |
307 // those total percent is 100. Other percent rows would be uneffected even e xtra spanning height is remain. | 307 // those total percent is 100. Other percent rows would be uneffected even e xtra spanning height is remain. |
308 int accumulatedPositionIncrease = 0; | 308 int accumulatedPositionIncrease = 0; |
309 for (unsigned row = rowIndex; row < (rowIndex + rowSpan); row++) { | 309 for (unsigned row = rowIndex; row < (rowIndex + rowSpan); row++) { |
310 if (percent > 0 && extraRowSpanningHeight > 0) { | 310 if (percent > 0 && extraRowSpanningHeight > 0) { |
311 if (m_grid[row].logicalHeight.isPercent()) { | 311 if (m_grid[row].logicalHeight.isPercent()) { |
312 int toAdd = (tableHeight * m_grid[row].logicalHeight.percent() / 100) - rowsHeight[row - rowIndex]; | 312 int toAdd = (tableHeight * m_grid[row].logicalHeight.percent() / 100) - rowsHeight[row - rowIndex]; |
313 // FIXME: Note that this is wrong if we have a percentage above 100% and may make us grow | 313 // FIXME: Note that this is wrong if we have a percentage above 100% and may make us grow |
314 // above the available space. | 314 // above the available space. |
315 | 315 |
316 toAdd = std::max(toAdd, 0); | |
esprehn
2015/03/26 08:23:11
How does toAdd become negative here?
a.suchit2
2015/03/26 09:38:35
If percent height is less than the rowHeight based
Julien - ping for review
2015/03/26 15:22:10
It's not the only place where we do something simi
| |
316 toAdd = std::min(toAdd, extraRowSpanningHeight); | 317 toAdd = std::min(toAdd, extraRowSpanningHeight); |
317 accumulatedPositionIncrease += toAdd; | 318 accumulatedPositionIncrease += toAdd; |
318 extraRowSpanningHeight -= toAdd; | 319 extraRowSpanningHeight -= toAdd; |
319 percent -= m_grid[row].logicalHeight.percent(); | 320 percent -= m_grid[row].logicalHeight.percent(); |
320 } | 321 } |
321 } | 322 } |
322 m_rowPos[row + 1] += accumulatedPositionIncrease; | 323 m_rowPos[row + 1] += accumulatedPositionIncrease; |
323 } | 324 } |
324 } | 325 } |
325 | 326 |
(...skipping 1278 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1604 // FIXME: The table's direction should determine our row's direction, not th e section's (see bug 96691). | 1605 // FIXME: The table's direction should determine our row's direction, not th e section's (see bug 96691). |
1605 if (!style()->isLeftToRightDirection()) | 1606 if (!style()->isLeftToRightDirection()) |
1606 cellLocation.setX(table()->columnPositions()[table()->numEffCols()] - ta ble()->columnPositions()[table()->colToEffCol(cell->col() + cell->colSpan())] + horizontalBorderSpacing); | 1607 cellLocation.setX(table()->columnPositions()[table()->numEffCols()] - ta ble()->columnPositions()[table()->colToEffCol(cell->col() + cell->colSpan())] + horizontalBorderSpacing); |
1607 else | 1608 else |
1608 cellLocation.setX(table()->columnPositions()[effectiveColumn] + horizont alBorderSpacing); | 1609 cellLocation.setX(table()->columnPositions()[effectiveColumn] + horizont alBorderSpacing); |
1609 | 1610 |
1610 cell->setLogicalLocation(cellLocation); | 1611 cell->setLogicalLocation(cellLocation); |
1611 } | 1612 } |
1612 | 1613 |
1613 } // namespace blink | 1614 } // namespace blink |
OLD | NEW |