| 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 2044 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2055 return logicalLeft; | 2055 return logicalLeft; |
| 2056 } | 2056 } |
| 2057 | 2057 |
| 2058 void LayoutBlockFlow::setShouldDoFullPaintInvalidationForFirstLine() | 2058 void LayoutBlockFlow::setShouldDoFullPaintInvalidationForFirstLine() |
| 2059 { | 2059 { |
| 2060 ASSERT(childrenInline()); | 2060 ASSERT(childrenInline()); |
| 2061 if (RootInlineBox* firstRootBox = this->firstRootBox()) | 2061 if (RootInlineBox* firstRootBox = this->firstRootBox()) |
| 2062 firstRootBox->setShouldDoFullPaintInvalidationRecursively(); | 2062 firstRootBox->setShouldDoFullPaintInvalidationRecursively(); |
| 2063 } | 2063 } |
| 2064 | 2064 |
| 2065 bool LayoutBlockFlow::paintedOutputOfObjectHasNoEffect() const |
| 2066 { |
| 2067 // LayoutBlockFlow is in charge of paint invalidation of the first line. |
| 2068 if (firstLineBox()) |
| 2069 return false; |
| 2070 |
| 2071 return LayoutBlock::paintedOutputOfObjectHasNoEffect(); |
| 2072 } |
| 2073 |
| 2065 PaintInvalidationReason LayoutBlockFlow::invalidatePaintIfNeeded(const PaintInva
lidationState& paintInvalidationState) | 2074 PaintInvalidationReason LayoutBlockFlow::invalidatePaintIfNeeded(const PaintInva
lidationState& paintInvalidationState) |
| 2066 { | 2075 { |
| 2067 if (containsFloats()) | 2076 if (containsFloats()) |
| 2068 paintInvalidationState.paintingLayer().setNeedsPaintPhaseFloat(); | 2077 paintInvalidationState.paintingLayer().setNeedsPaintPhaseFloat(); |
| 2069 | 2078 |
| 2070 PaintInvalidationReason reason = LayoutBlock::invalidatePaintIfNeeded(paintI
nvalidationState); | 2079 PaintInvalidationReason reason = LayoutBlock::invalidatePaintIfNeeded(paintI
nvalidationState); |
| 2071 if (reason == PaintInvalidationNone || reason == PaintInvalidationDelayedFul
l) | 2080 if (reason == PaintInvalidationNone || reason == PaintInvalidationDelayedFul
l) |
| 2072 return reason; | 2081 return reason; |
| 2073 | 2082 |
| 2074 RootInlineBox* line = firstRootBox(); | 2083 RootInlineBox* line = firstRootBox(); |
| 2075 if (!line || !line->isFirstLineStyle()) | 2084 if (!line || !line->isFirstLineStyle()) |
| 2076 return reason; | 2085 return reason; |
| 2077 // It's the RootInlineBox that paints the ::first-line background. Note that
since it may be | 2086 // It's the RootInlineBox that paints the ::first-line background. Note that
since it may be |
| 2078 // expensive to figure out if the first line is affected by any ::first-line
selectors at all, | 2087 // expensive to figure out if the first line is affected by any ::first-line
selectors at all, |
| 2079 // we just invalidate it unconditionally, since that's typically cheaper. | 2088 // we just invalidate it unconditionally, since that's typically cheaper. |
| 2080 invalidateDisplayItemClient(*line, reason); | 2089 invalidateDisplayItemClient(*line, reason); |
| 2081 return reason; | 2090 return reason; |
| 2082 } | 2091 } |
| 2083 | 2092 |
| 2084 } // namespace blink | 2093 } // namespace blink |
| OLD | NEW |