| 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, 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 330 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 341 computedLogicalHeight = styleLogicalHeight.value() - borders; | 341 computedLogicalHeight = styleLogicalHeight.value() - borders; |
| 342 } else if (styleLogicalHeight.isPercent()) | 342 } else if (styleLogicalHeight.isPercent()) |
| 343 computedLogicalHeight = computePercentageLogicalHeight(styleLogicalHeigh
t); | 343 computedLogicalHeight = computePercentageLogicalHeight(styleLogicalHeigh
t); |
| 344 else if (styleLogicalHeight.isIntrinsic()) | 344 else if (styleLogicalHeight.isIntrinsic()) |
| 345 computedLogicalHeight = computeIntrinsicLogicalContentHeightUsing(styleL
ogicalHeight, logicalHeight() - borderAndPadding, borderAndPadding); | 345 computedLogicalHeight = computeIntrinsicLogicalContentHeightUsing(styleL
ogicalHeight, logicalHeight() - borderAndPadding, borderAndPadding); |
| 346 else | 346 else |
| 347 ASSERT_NOT_REACHED(); | 347 ASSERT_NOT_REACHED(); |
| 348 return std::max<LayoutUnit>(0, computedLogicalHeight); | 348 return std::max<LayoutUnit>(0, computedLogicalHeight); |
| 349 } | 349 } |
| 350 | 350 |
| 351 void RenderTable::layoutCaption(RenderTableCaption* caption) | 351 void RenderTable::layoutCaption(RenderTableCaption& caption) |
| 352 { | 352 { |
| 353 if (caption->needsLayout()) { | 353 if (caption.needsLayout()) { |
| 354 // The margins may not be available but ensure the caption is at least l
ocated beneath any previous sibling caption | 354 // The margins may not be available but ensure the caption is at least l
ocated beneath any previous sibling caption |
| 355 // so that it does not mistakenly think any floats in the previous capti
on intrude into it. | 355 // so that it does not mistakenly think any floats in the previous capti
on intrude into it. |
| 356 caption->setLogicalLocation(LayoutPoint(caption->marginStart(), collapse
dMarginBeforeForChild(caption) + logicalHeight())); | 356 caption.setLogicalLocation(LayoutPoint(caption.marginStart(), collapsedM
arginBeforeForChild(caption) + logicalHeight())); |
| 357 // If RenderTableCaption ever gets a layout() function, use it here. | 357 // If RenderTableCaption ever gets a layout() function, use it here. |
| 358 caption->layoutIfNeeded(); | 358 caption.layoutIfNeeded(); |
| 359 } | 359 } |
| 360 // Apply the margins to the location now that they are definitely available
from layout | 360 // Apply the margins to the location now that they are definitely available
from layout |
| 361 LayoutUnit captionLogicalTop = collapsedMarginBeforeForChild(caption) + logi
calHeight(); | 361 LayoutUnit captionLogicalTop = collapsedMarginBeforeForChild(caption) + logi
calHeight(); |
| 362 if (view()->layoutState()->isPaginated()) { | 362 if (view()->layoutState()->isPaginated()) { |
| 363 captionLogicalTop += caption->paginationStrut(); | 363 captionLogicalTop += caption.paginationStrut(); |
| 364 caption->setPaginationStrut(0); | 364 caption.setPaginationStrut(0); |
| 365 } | 365 } |
| 366 caption->setLogicalLocation(LayoutPoint(caption->marginStart(), captionLogic
alTop)); | 366 caption.setLogicalLocation(LayoutPoint(caption.marginStart(), captionLogical
Top)); |
| 367 | 367 |
| 368 if (!selfNeedsLayout()) | 368 if (!selfNeedsLayout()) |
| 369 caption->setMayNeedPaintInvalidation(true); | 369 caption.setMayNeedPaintInvalidation(true); |
| 370 | 370 |
| 371 setLogicalHeight(logicalHeight() + caption->logicalHeight() + collapsedMargi
nBeforeForChild(caption) + collapsedMarginAfterForChild(caption)); | 371 setLogicalHeight(logicalHeight() + caption.logicalHeight() + collapsedMargin
BeforeForChild(caption) + collapsedMarginAfterForChild(caption)); |
| 372 } | 372 } |
| 373 | 373 |
| 374 void RenderTable::distributeExtraLogicalHeight(int extraLogicalHeight) | 374 void RenderTable::distributeExtraLogicalHeight(int extraLogicalHeight) |
| 375 { | 375 { |
| 376 if (extraLogicalHeight <= 0) | 376 if (extraLogicalHeight <= 0) |
| 377 return; | 377 return; |
| 378 | 378 |
| 379 // FIXME: Distribute the extra logical height between all table sections ins
tead of giving it all to the first one. | 379 // FIXME: Distribute the extra logical height between all table sections ins
tead of giving it all to the first one. |
| 380 if (RenderTableSection* section = firstBody()) | 380 if (RenderTableSection* section = firstBody()) |
| 381 extraLogicalHeight -= section->distributeExtraLogicalHeightToRows(extraL
ogicalHeight); | 381 extraLogicalHeight -= section->distributeExtraLogicalHeightToRows(extraL
ogicalHeight); |
| (...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 461 // Until this is fixed, let's make sure we don't leave non laid
out children in the tree. | 461 // Until this is fixed, let's make sure we don't leave non laid
out children in the tree. |
| 462 child->layoutIfNeeded(); | 462 child->layoutIfNeeded(); |
| 463 } | 463 } |
| 464 } | 464 } |
| 465 | 465 |
| 466 // FIXME: Collapse caption margin. | 466 // FIXME: Collapse caption margin. |
| 467 if (!m_captions.isEmpty()) { | 467 if (!m_captions.isEmpty()) { |
| 468 for (unsigned i = 0; i < m_captions.size(); i++) { | 468 for (unsigned i = 0; i < m_captions.size(); i++) { |
| 469 if (m_captions[i]->style()->captionSide() == CAPBOTTOM) | 469 if (m_captions[i]->style()->captionSide() == CAPBOTTOM) |
| 470 continue; | 470 continue; |
| 471 layoutCaption(m_captions[i]); | 471 layoutCaption(*m_captions[i]); |
| 472 } | 472 } |
| 473 if (logicalHeight() != oldTableLogicalTop) { | 473 if (logicalHeight() != oldTableLogicalTop) { |
| 474 sectionMoved = true; | 474 sectionMoved = true; |
| 475 movedSectionLogicalTop = std::min(logicalHeight(), oldTableLogic
alTop); | 475 movedSectionLogicalTop = std::min(logicalHeight(), oldTableLogic
alTop); |
| 476 } | 476 } |
| 477 } | 477 } |
| 478 | 478 |
| 479 LayoutUnit borderAndPaddingBefore = borderBefore() + (collapsing ? Layou
tUnit() : paddingBefore()); | 479 LayoutUnit borderAndPaddingBefore = borderBefore() + (collapsing ? Layou
tUnit() : paddingBefore()); |
| 480 LayoutUnit borderAndPaddingAfter = borderAfter() + (collapsing ? LayoutU
nit() : paddingAfter()); | 480 LayoutUnit borderAndPaddingAfter = borderAfter() + (collapsing ? LayoutU
nit() : paddingAfter()); |
| 481 | 481 |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 530 setLogicalHeight(logicalHeight() + section->logicalHeight()); | 530 setLogicalHeight(logicalHeight() + section->logicalHeight()); |
| 531 | 531 |
| 532 section = sectionBelow(section); | 532 section = sectionBelow(section); |
| 533 } | 533 } |
| 534 | 534 |
| 535 setLogicalHeight(logicalHeight() + borderAndPaddingAfter); | 535 setLogicalHeight(logicalHeight() + borderAndPaddingAfter); |
| 536 | 536 |
| 537 for (unsigned i = 0; i < m_captions.size(); i++) { | 537 for (unsigned i = 0; i < m_captions.size(); i++) { |
| 538 if (m_captions[i]->style()->captionSide() != CAPBOTTOM) | 538 if (m_captions[i]->style()->captionSide() != CAPBOTTOM) |
| 539 continue; | 539 continue; |
| 540 layoutCaption(m_captions[i]); | 540 layoutCaption(*m_captions[i]); |
| 541 } | 541 } |
| 542 | 542 |
| 543 updateLogicalHeight(); | 543 updateLogicalHeight(); |
| 544 | 544 |
| 545 // table can be containing block of positioned elements. | 545 // table can be containing block of positioned elements. |
| 546 bool dimensionChanged = oldLogicalWidth != logicalWidth() || oldLogicalH
eight != logicalHeight(); | 546 bool dimensionChanged = oldLogicalWidth != logicalWidth() || oldLogicalH
eight != logicalHeight(); |
| 547 layoutPositionedObjects(dimensionChanged); | 547 layoutPositionedObjects(dimensionChanged); |
| 548 | 548 |
| 549 updateLayerTransformAfterLayout(); | 549 updateLayerTransformAfterLayout(); |
| 550 | 550 |
| (...skipping 786 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1337 const BorderValue& RenderTable::tableEndBorderAdjoiningCell(const RenderTableCel
l* cell) const | 1337 const BorderValue& RenderTable::tableEndBorderAdjoiningCell(const RenderTableCel
l* cell) const |
| 1338 { | 1338 { |
| 1339 ASSERT(cell->isFirstOrLastCellInRow()); | 1339 ASSERT(cell->isFirstOrLastCellInRow()); |
| 1340 if (hasSameDirectionAs(cell->row())) | 1340 if (hasSameDirectionAs(cell->row())) |
| 1341 return style()->borderEnd(); | 1341 return style()->borderEnd(); |
| 1342 | 1342 |
| 1343 return style()->borderStart(); | 1343 return style()->borderStart(); |
| 1344 } | 1344 } |
| 1345 | 1345 |
| 1346 } | 1346 } |
| OLD | NEW |