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 dirtyLinesFromChangedChild(box, MarkOnlyThis); |
1594 } | 1596 } |
1595 } else if (isFullLayout || o->needsLayout()) { | 1597 } else if (isFullLayout || o->needsLayout()) { |
1596 // Atomic inline. | 1598 // Atomic inline. |
1597 box->dirtyLineBoxes(isFullLayout); | 1599 box->dirtyLineBoxes(isFullLayout); |
1598 o->layoutIfNeeded(); | 1600 o->layoutIfNeeded(); |
1599 } | 1601 } |
1600 } else if (o->isText() || (o->isLayoutInline() && !walker.atEndOfInl
ine())) { | 1602 } else if (o->isText() || (o->isLayoutInline() && !walker.atEndOfInl
ine())) { |
1601 if (!o->isText()) | 1603 if (!o->isText()) |
1602 toLayoutInline(o)->updateAlwaysCreateLineBoxes(layoutState.i
sFullLayout()); | 1604 toLayoutInline(o)->updateAlwaysCreateLineBoxes(layoutState.i
sFullLayout()); |
1603 if (layoutState.isFullLayout() || o->selfNeedsLayout()) | 1605 if (layoutState.isFullLayout() || o->selfNeedsLayout()) |
(...skipping 481 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2085 if (!line || !line->isFirstLineStyle()) | 2087 if (!line || !line->isFirstLineStyle()) |
2086 return reason; | 2088 return reason; |
2087 // It's the RootInlineBox that paints the ::first-line background. Note that
since it may be | 2089 // 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, | 2090 // 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. | 2091 // we just invalidate it unconditionally, since that's typically cheaper. |
2090 invalidateDisplayItemClient(*line); | 2092 invalidateDisplayItemClient(*line); |
2091 return reason; | 2093 return reason; |
2092 } | 2094 } |
2093 | 2095 |
2094 } // namespace blink | 2096 } // namespace blink |
OLD | NEW |