Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * Copyright (C) 2000 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 2000 Lars Knoll (knoll@kde.org) |
| 3 * Copyright (C) 2003, 2004, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All r ight reserved. | 3 * Copyright (C) 2003, 2004, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All r ight reserved. |
| 4 * Copyright (C) 2010 Google Inc. All rights reserved. | 4 * Copyright (C) 2010 Google Inc. All rights reserved. |
| 5 * | 5 * |
| 6 * This library is free software; you can redistribute it and/or | 6 * This library is free software; you can redistribute it and/or |
| 7 * modify it under the terms of the GNU Library General Public | 7 * modify it under the terms of the GNU Library General Public |
| 8 * License as published by the Free Software Foundation; either | 8 * License as published by the Free Software Foundation; either |
| 9 * version 2 of the License, or (at your option) any later version. | 9 * version 2 of the License, or (at your option) any later version. |
| 10 * | 10 * |
| (...skipping 1572 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1583 box->setMayNeedPaintInvalidation(); | 1583 box->setMayNeedPaintInvalidation(); |
| 1584 | 1584 |
| 1585 updateBlockChildDirtyBitsBeforeLayout(relayoutChildren, *box); | 1585 updateBlockChildDirtyBitsBeforeLayout(relayoutChildren, *box); |
| 1586 | 1586 |
| 1587 if (o->isOutOfFlowPositioned()) { | 1587 if (o->isOutOfFlowPositioned()) { |
| 1588 o->containingBlock()->insertPositionedObject(box); | 1588 o->containingBlock()->insertPositionedObject(box); |
| 1589 } else if (o->isFloating()) { | 1589 } else if (o->isFloating()) { |
| 1590 layoutState.floats().append(FloatWithRect(box)); | 1590 layoutState.floats().append(FloatWithRect(box)); |
| 1591 if (box->needsLayout()) { | 1591 if (box->needsLayout()) { |
| 1592 box->layout(); | 1592 box->layout(); |
| 1593 markLinesDirtyInBlockRange(toLayoutBox(o)->logicalTop(), toLayoutBox(o)->logicalBottom()); | 1593 // Dirty any lineboxes potentially affected by the float , but don't search outside this |
| 1594 // object as we are only interested in dirtying lineboxe s to which we may attach the float. | |
| 1595 bool ancestorLineBoxWasDirty = ancestorLineBoxDirty(); | |
| 1596 setAncestorLineBoxDirty(false); | |
| 1597 dirtyLinesFromChangedChild(box); | |
| 1598 setAncestorLineBoxDirty(ancestorLineBoxWasDirty); | |
|
eae
2016/06/10 06:20:41
Shouldn't this be setAncestorLineBoxDirty(ancestor
rhogan
2016/06/10 17:25:13
Oh I have it the wrong way round. I need to set it
| |
| 1594 } | 1599 } |
| 1595 } else if (isFullLayout || o->needsLayout()) { | 1600 } else if (isFullLayout || o->needsLayout()) { |
| 1596 // Atomic inline. | 1601 // Atomic inline. |
| 1597 box->dirtyLineBoxes(isFullLayout); | 1602 box->dirtyLineBoxes(isFullLayout); |
| 1598 o->layoutIfNeeded(); | 1603 o->layoutIfNeeded(); |
| 1599 } | 1604 } |
| 1600 } else if (o->isText() || (o->isLayoutInline() && !walker.atEndOfInl ine())) { | 1605 } else if (o->isText() || (o->isLayoutInline() && !walker.atEndOfInl ine())) { |
| 1601 if (!o->isText()) | 1606 if (!o->isText()) |
| 1602 toLayoutInline(o)->updateAlwaysCreateLineBoxes(layoutState.i sFullLayout()); | 1607 toLayoutInline(o)->updateAlwaysCreateLineBoxes(layoutState.i sFullLayout()); |
| 1603 if (layoutState.isFullLayout() || o->selfNeedsLayout()) | 1608 if (layoutState.isFullLayout() || o->selfNeedsLayout()) |
| (...skipping 481 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2085 if (!line || !line->isFirstLineStyle()) | 2090 if (!line || !line->isFirstLineStyle()) |
| 2086 return reason; | 2091 return reason; |
| 2087 // It's the RootInlineBox that paints the ::first-line background. Note that since it may be | 2092 // It's the RootInlineBox that paints the ::first-line background. Note that since it may be |
| 2088 // expensive to figure out if the first line is affected by any ::first-line selectors at all, | 2093 // expensive to figure out if the first line is affected by any ::first-line selectors at all, |
| 2089 // we just invalidate it unconditionally, since that's typically cheaper. | 2094 // we just invalidate it unconditionally, since that's typically cheaper. |
| 2090 invalidateDisplayItemClient(*line); | 2095 invalidateDisplayItemClient(*line); |
| 2091 return reason; | 2096 return reason; |
| 2092 } | 2097 } |
| 2093 | 2098 |
| 2094 } // namespace blink | 2099 } // namespace blink |
| OLD | NEW |