OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2012 Google Inc. All rights reserved. | 2 * Copyright (C) 2012 Google Inc. All rights reserved. |
3 * Copyright (C) 2012 Apple Inc. All rights reserved. | 3 * Copyright (C) 2012 Apple Inc. All rights reserved. |
4 * | 4 * |
5 * This library is free software; you can redistribute it and/or | 5 * This library is free software; you can redistribute it and/or |
6 * modify it under the terms of the GNU Library General Public | 6 * modify it under the terms of the GNU Library General Public |
7 * License as published by the Free Software Foundation; either | 7 * License as published by the Free Software Foundation; either |
8 * version 2 of the License, or (at your option) any later version. | 8 * version 2 of the License, or (at your option) any later version. |
9 * | 9 * |
10 * This library is distributed in the hope that it will be useful, | 10 * This library is distributed in the hope that it will be useful, |
(...skipping 507 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
518 // | 518 // |
519 // Clusters are chosen using very similar criteria to CSS flow roots, aka | 519 // Clusters are chosen using very similar criteria to CSS flow roots, aka |
520 // block formatting contexts (http://w3.org/TR/css3-box/#flow-root), since | 520 // block formatting contexts (http://w3.org/TR/css3-box/#flow-root), since |
521 // flow roots correspond to box containers that behave somewhat | 521 // flow roots correspond to box containers that behave somewhat |
522 // independently from their parent (for example they don't overlap floats). | 522 // independently from their parent (for example they don't overlap floats). |
523 // The definition of a flow root also conveniently includes most of the | 523 // The definition of a flow root also conveniently includes most of the |
524 // ways that a box and its children can have significantly different width | 524 // ways that a box and its children can have significantly different width |
525 // from the box's parent (we want to avoid having significantly different | 525 // from the box's parent (we want to avoid having significantly different |
526 // width blocks within a cluster, since the narrower blocks would end up | 526 // width blocks within a cluster, since the narrower blocks would end up |
527 // larger than would otherwise be necessary). | 527 // larger than would otherwise be necessary). |
| 528 RenderBlock* containingBlock = renderer->containingBlock(); |
528 return renderer->isRenderView() | 529 return renderer->isRenderView() |
529 || renderer->isFloating() | 530 || renderer->isFloating() |
530 || renderer->isOutOfFlowPositioned() | 531 || renderer->isOutOfFlowPositioned() |
531 || renderer->isTableCell() | 532 || renderer->isTableCell() |
532 || renderer->isTableCaption() | 533 || renderer->isTableCaption() |
533 || renderer->isFlexibleBoxIncludingDeprecated() | 534 || renderer->isFlexibleBoxIncludingDeprecated() |
534 || renderer->hasColumns() | 535 || renderer->hasColumns() |
535 || renderer->containingBlock()->isHorizontalWritingMode() != renderer->i
sHorizontalWritingMode() | 536 || (containingBlock && containingBlock->isHorizontalWritingMode() != ren
derer->isHorizontalWritingMode()) |
536 || renderer->style()->isDisplayReplacedType() | 537 || renderer->style()->isDisplayReplacedType() |
537 || renderer->isTextArea() | 538 || renderer->isTextArea() |
538 || renderer->style()->userModify() != READ_ONLY; | 539 || renderer->style()->userModify() != READ_ONLY; |
539 // FIXME: Tables need special handling to multiply all their columns by | 540 // FIXME: Tables need special handling to multiply all their columns by |
540 // the same amount even if they're different widths; so do hasColumns() | 541 // the same amount even if they're different widths; so do hasColumns() |
541 // containers, and probably flexboxes... | 542 // containers, and probably flexboxes... |
542 } | 543 } |
543 | 544 |
544 bool TextAutosizer::isAutosizingCluster(const RenderBlock* renderer, TextAutosiz
ingClusterInfo& parentClusterInfo) | 545 bool TextAutosizer::isAutosizingCluster(const RenderBlock* renderer, TextAutosiz
ingClusterInfo& parentClusterInfo) |
545 { | 546 { |
(...skipping 250 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
796 if (i + 1 < clusterInfos.size()) { | 797 if (i + 1 < clusterInfos.size()) { |
797 float currentWidth = clusterInfos[i].root->contentLogicalWidth(); | 798 float currentWidth = clusterInfos[i].root->contentLogicalWidth(); |
798 float nextWidth = clusterInfos[i + 1].root->contentLogicalWidth(); | 799 float nextWidth = clusterInfos[i + 1].root->contentLogicalWidth(); |
799 if (currentWidth - nextWidth > maxWidthDifferenceWithinGroup) | 800 if (currentWidth - nextWidth > maxWidthDifferenceWithinGroup) |
800 groups.grow(groups.size() + 1); | 801 groups.grow(groups.size() + 1); |
801 } | 802 } |
802 } | 803 } |
803 } | 804 } |
804 | 805 |
805 } // namespace WebCore | 806 } // namespace WebCore |
OLD | NEW |