Chromium Code Reviews| 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 296 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 307 { | 307 { |
| 308 if (!extraRowSpanningHeight || !totalPercent) | 308 if (!extraRowSpanningHeight || !totalPercent) |
| 309 return; | 309 return; |
| 310 | 310 |
| 311 const unsigned rowSpan = cell->rowSpan(); | 311 const unsigned rowSpan = cell->rowSpan(); |
| 312 const unsigned rowIndex = cell->rowIndex(); | 312 const unsigned rowIndex = cell->rowIndex(); |
| 313 int percent = std::min(totalPercent, 100); | 313 int percent = std::min(totalPercent, 100); |
| 314 const int tableHeight = m_rowPos[m_grid.size()] + extraRowSpanningHeight; | 314 const int tableHeight = m_rowPos[m_grid.size()] + extraRowSpanningHeight; |
| 315 | 315 |
| 316 // Our algorithm matches Firefox. Extra spanning height would be distributed Only in first percent height rows | 316 // Our algorithm matches Firefox. Extra spanning height would be distributed Only in first percent height rows |
| 317 // those total percent is 100. Other percent rows would be uneffected even e xtra spanning height is remain. | 317 // those total percent is 100. Other percent rows would be uneffected even e xtra spanning height is remain. |
|
mstensho (USE GERRIT)
2015/10/16 18:19:13
I have trouble with my overall understanding of th
a.suchit2
2015/10/19 10:01:04
line 320, 'percent > 0' have condition for stoppin
mstensho (USE GERRIT)
2015/10/19 18:17:47
Yeah, but what if the initial value of |percent| i
a.suchit2
2015/10/20 05:15:07
yes, I am fixing same scenario here. But I should
mstensho (USE GERRIT)
2015/10/20 08:12:37
I think you should divide by |totalPercent|, but I
| |
| 318 int accumulatedPositionIncrease = 0; | 318 int accumulatedPositionIncrease = 0; |
| 319 for (unsigned row = rowIndex; row < (rowIndex + rowSpan); row++) { | 319 for (unsigned row = rowIndex; row < (rowIndex + rowSpan); row++) { |
| 320 if (percent > 0 && extraRowSpanningHeight > 0) { | 320 if (percent > 0 && extraRowSpanningHeight > 0) { |
| 321 // TODO(alancutter): Make this work correctly for calc lengths. | 321 // TODO(alancutter): Make this work correctly for calc lengths. |
| 322 if (m_grid[row].logicalHeight.hasPercent()) { | 322 if (m_grid[row].logicalHeight.hasPercent()) { |
| 323 int toAdd = (tableHeight * m_grid[row].logicalHeight.percent() / 100) - rowsHeight[row - rowIndex]; | 323 float maxPercent = 100.0; |
|
mstensho (USE GERRIT)
2015/10/16 18:19:13
I see no need for |maxPercent|. Just put 100.0 in
a.suchit2
2015/10/19 10:01:04
100.0 can not be used directly inside std::min bec
mstensho (USE GERRIT)
2015/10/19 18:17:47
So float(100.0) should work, then.
a.suchit2
2015/10/20 05:15:07
ok I will do it but I am not sure that it is accep
| |
| 324 int toAdd = (tableHeight * | |
| 325 std::min(m_grid[row].logicalHeight.percent(), maxPercent) / 100) | |
|
mstensho (USE GERRIT)
2015/10/16 18:19:13
Say, shouldn't you really divide by |totalPercent|
a.suchit2
2015/10/19 10:01:04
If we are using the |totalPercent| in place of 100
| |
| 326 - rowsHeight[row - rowIndex]; | |
| 324 // FIXME: Note that this is wrong if we have a percentage above 100% and may make us grow | 327 // FIXME: Note that this is wrong if we have a percentage above 100% and may make us grow |
|
mstensho (USE GERRIT)
2015/10/16 18:19:13
I guess this would no longer be the case, and that
a.suchit2
2015/10/19 10:01:04
Yes, we can remove it.
| |
| 325 // above the available space. | 328 // above the available space. |
| 326 | 329 |
| 327 toAdd = std::max(std::min(toAdd, extraRowSpanningHeight), 0); | 330 toAdd = std::max(std::min(toAdd, extraRowSpanningHeight), 0); |
| 328 accumulatedPositionIncrease += toAdd; | 331 accumulatedPositionIncrease += toAdd; |
| 329 extraRowSpanningHeight -= toAdd; | 332 extraRowSpanningHeight -= toAdd; |
| 330 percent -= m_grid[row].logicalHeight.percent(); | 333 percent -= m_grid[row].logicalHeight.percent(); |
| 331 } | 334 } |
| 332 } | 335 } |
| 333 m_rowPos[row + 1] += accumulatedPositionIncrease; | 336 m_rowPos[row + 1] += accumulatedPositionIncrease; |
| 334 } | 337 } |
| (...skipping 1309 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1644 // FIXME: The table's direction should determine our row's direction, not th e section's (see bug 96691). | 1647 // FIXME: The table's direction should determine our row's direction, not th e section's (see bug 96691). |
| 1645 if (!style()->isLeftToRightDirection()) | 1648 if (!style()->isLeftToRightDirection()) |
| 1646 cellLocation.setX(table()->columnPositions()[table()->numEffCols()] - ta ble()->columnPositions()[table()->colToEffCol(cell->col() + cell->colSpan())] + horizontalBorderSpacing); | 1649 cellLocation.setX(table()->columnPositions()[table()->numEffCols()] - ta ble()->columnPositions()[table()->colToEffCol(cell->col() + cell->colSpan())] + horizontalBorderSpacing); |
| 1647 else | 1650 else |
| 1648 cellLocation.setX(table()->columnPositions()[effectiveColumn] + horizont alBorderSpacing); | 1651 cellLocation.setX(table()->columnPositions()[effectiveColumn] + horizont alBorderSpacing); |
| 1649 | 1652 |
| 1650 cell->setLogicalLocation(cellLocation); | 1653 cell->setLogicalLocation(cellLocation); |
| 1651 } | 1654 } |
| 1652 | 1655 |
| 1653 } // namespace blink | 1656 } // namespace blink |
| OLD | NEW |