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 1204 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1215 | 1215 |
1216 void RenderBlockFlow::repaintDirtyFloats(Vector<FloatWithRect>& floats) | 1216 void RenderBlockFlow::repaintDirtyFloats(Vector<FloatWithRect>& floats) |
1217 { | 1217 { |
1218 size_t floatCount = floats.size(); | 1218 size_t floatCount = floats.size(); |
1219 // Floats that did not have layout did not paint invalidations when we laid
them out. They would have | 1219 // Floats that did not have layout did not paint invalidations when we laid
them out. They would have |
1220 // painted by now if they had moved, but if they stayed at (0, 0), they stil
l need to be | 1220 // painted by now if they had moved, but if they stayed at (0, 0), they stil
l need to be |
1221 // painted. | 1221 // painted. |
1222 for (size_t i = 0; i < floatCount; ++i) { | 1222 for (size_t i = 0; i < floatCount; ++i) { |
1223 if (!floats[i].everHadLayout) { | 1223 if (!floats[i].everHadLayout) { |
1224 RenderBox* f = floats[i].object; | 1224 RenderBox* f = floats[i].object; |
1225 if (!f->x() && !f->y() && f->checkForRepaint()) { | 1225 if (!f->x() && !f->y() && f->checkForPaintInvalidation()) { |
1226 if (RuntimeEnabledFeatures::repaintAfterLayoutEnabled()) | 1226 if (RuntimeEnabledFeatures::repaintAfterLayoutEnabled()) |
1227 f->setShouldDoFullPaintInvalidationAfterLayout(true); | 1227 f->setShouldDoFullPaintInvalidationAfterLayout(true); |
1228 else | 1228 else |
1229 f->paintInvalidationForWholeRenderer(); | 1229 f->paintInvalidationForWholeRenderer(); |
1230 } | 1230 } |
1231 } | 1231 } |
1232 } | 1232 } |
1233 } | 1233 } |
1234 | 1234 |
1235 struct InlineMinMaxIterator { | 1235 struct InlineMinMaxIterator { |
(...skipping 588 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1824 break; | 1824 break; |
1825 } | 1825 } |
1826 // Check if a new float has been inserted after the last known float. | 1826 // Check if a new float has been inserted after the last known float. |
1827 if (!curr && floatIndex < layoutState.floats().size()) | 1827 if (!curr && floatIndex < layoutState.floats().size()) |
1828 layoutState.markForFullLayout(); | 1828 layoutState.markForFullLayout(); |
1829 } | 1829 } |
1830 | 1830 |
1831 if (layoutState.isFullLayout()) { | 1831 if (layoutState.isFullLayout()) { |
1832 // If we encountered a new float and have inline children, mark ourself
to force us to issue paint invalidations. | 1832 // If we encountered a new float and have inline children, mark ourself
to force us to issue paint invalidations. |
1833 if (layoutState.hasInlineChild() && !selfNeedsLayout()) { | 1833 if (layoutState.hasInlineChild() && !selfNeedsLayout()) { |
1834 setNeedsLayoutAndFullRepaint(MarkOnlyThis); | 1834 setNeedsLayoutAndFullPaintInvalidation(MarkOnlyThis); |
1835 if (RuntimeEnabledFeatures::repaintAfterLayoutEnabled()) | 1835 if (RuntimeEnabledFeatures::repaintAfterLayoutEnabled()) |
1836 setShouldDoFullPaintInvalidationAfterLayout(true); | 1836 setShouldDoFullPaintInvalidationAfterLayout(true); |
1837 } | 1837 } |
1838 | 1838 |
1839 // FIXME: This should just call deleteLineBoxTree, but that causes | 1839 // FIXME: This should just call deleteLineBoxTree, but that causes |
1840 // crashes for fast/repaint tests. | 1840 // crashes for fast/repaint tests. |
1841 curr = firstRootBox(); | 1841 curr = firstRootBox(); |
1842 while (curr) { | 1842 while (curr) { |
1843 // Note: This uses nextRootBox() insted of nextLineBox() like delete
LineBoxTree does. | 1843 // Note: This uses nextRootBox() insted of nextLineBox() like delete
LineBoxTree does. |
1844 RootInlineBox* next = curr->nextRootBox(); | 1844 RootInlineBox* next = curr->nextRootBox(); |
(...skipping 345 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2190 float logicalLeft = logicalLeftOffsetForLine(logicalHeight(), false).toFloat
(); | 2190 float logicalLeft = logicalLeftOffsetForLine(logicalHeight(), false).toFloat
(); |
2191 float availableLogicalWidth = logicalRightOffsetForLine(logicalHeight(), fal
se) - logicalLeft; | 2191 float availableLogicalWidth = logicalRightOffsetForLine(logicalHeight(), fal
se) - logicalLeft; |
2192 updateLogicalWidthForAlignment(textAlign, 0, 0, logicalLeft, totalLogicalWid
th, availableLogicalWidth, 0); | 2192 updateLogicalWidthForAlignment(textAlign, 0, 0, logicalLeft, totalLogicalWid
th, availableLogicalWidth, 0); |
2193 | 2193 |
2194 if (!style()->isLeftToRightDirection()) | 2194 if (!style()->isLeftToRightDirection()) |
2195 return logicalWidth() - logicalLeft; | 2195 return logicalWidth() - logicalLeft; |
2196 return logicalLeft; | 2196 return logicalLeft; |
2197 } | 2197 } |
2198 | 2198 |
2199 } | 2199 } |
OLD | NEW |