OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
3 * (C) 1999 Antti Koivisto (koivisto@kde.org) | 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) |
4 * (C) 2000 Dirk Mueller (mueller@kde.org) | 4 * (C) 2000 Dirk Mueller (mueller@kde.org) |
5 * (C) 2004 Allan Sandfeld Jensen (kde@carewolf.com) | 5 * (C) 2004 Allan Sandfeld Jensen (kde@carewolf.com) |
6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2011 Apple Inc. | 6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2011 Apple Inc. |
7 * All rights reserved. | 7 * All rights reserved. |
8 * Copyright (C) 2009 Google Inc. All rights reserved. | 8 * Copyright (C) 2009 Google Inc. All rights reserved. |
9 * Copyright (C) 2009 Torch Mobile Inc. All rights reserved. | 9 * Copyright (C) 2009 Torch Mobile Inc. All rights reserved. |
10 * (http://www.torchmobile.com/) | 10 * (http://www.torchmobile.com/) |
(...skipping 698 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
709 // LayoutInline can't be relayout roots since LayoutBlockFlow is responsible | 709 // LayoutInline can't be relayout roots since LayoutBlockFlow is responsible |
710 // for layouting them. | 710 // for layouting them. |
711 if (object->isLayoutInline()) | 711 if (object->isLayoutInline()) |
712 return false; | 712 return false; |
713 | 713 |
714 // Table parts can't be relayout roots since the table is responsible for | 714 // Table parts can't be relayout roots since the table is responsible for |
715 // layouting all the parts. | 715 // layouting all the parts. |
716 if (object->isTablePart()) | 716 if (object->isTablePart()) |
717 return false; | 717 return false; |
718 | 718 |
719 if (object->style()->containsLayout() && object->style()->containsSize()) | 719 const ComputedStyle* style = object->style(); |
| 720 if (style->containsLayout() && style->containsSize()) |
720 return true; | 721 return true; |
721 | 722 |
722 if (!object->hasOverflowClip()) | 723 if (!object->hasOverflowClip()) |
723 return false; | 724 return false; |
724 | 725 |
725 if (object->style()->width().isIntrinsicOrAuto() || | 726 // If either dimension is percent-based, intrinsic, or anything but fixed, |
726 object->style()->height().isIntrinsicOrAuto() || | 727 // this object cannot form a re-layout boundary. A non-fixed computed logical |
727 object->style()->height().isPercentOrCalc()) | 728 // height will allow the object to grow and shrink based on the content |
| 729 // inside. The same goes for for logical width, if this objects is inside a |
| 730 // shrink-to-fit container, for instance. |
| 731 if (!style->width().isFixed() || !style->height().isFixed()) |
728 return false; | 732 return false; |
729 | 733 |
730 // Scrollbar parts can be removed during layout. Avoid the complexity of | 734 // Scrollbar parts can be removed during layout. Avoid the complexity of |
731 // having to deal with that. | 735 // having to deal with that. |
732 if (object->isLayoutScrollbarPart()) | 736 if (object->isLayoutScrollbarPart()) |
733 return false; | 737 return false; |
734 | 738 |
735 // In general we can't relayout a flex item independently of its container; | 739 // In general we can't relayout a flex item independently of its container; |
736 // not only is the result incorrect due to the override size that's set, it | 740 // not only is the result incorrect due to the override size that's set, it |
737 // also messes with the cached main size on the flexbox. | 741 // also messes with the cached main size on the flexbox. |
(...skipping 2770 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3508 const blink::LayoutObject* root = object1; | 3512 const blink::LayoutObject* root = object1; |
3509 while (root->parent()) | 3513 while (root->parent()) |
3510 root = root->parent(); | 3514 root = root->parent(); |
3511 root->showLayoutTreeAndMark(object1, "*", object2, "-", 0); | 3515 root->showLayoutTreeAndMark(object1, "*", object2, "-", 0); |
3512 } else { | 3516 } else { |
3513 WTFLogAlways("%s", "Cannot showLayoutTree. Root is (nil)"); | 3517 WTFLogAlways("%s", "Cannot showLayoutTree. Root is (nil)"); |
3514 } | 3518 } |
3515 } | 3519 } |
3516 | 3520 |
3517 #endif | 3521 #endif |
OLD | NEW |