| 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 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights
reserved. | 4 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009 Apple 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 1034 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1045 | 1045 |
| 1046 LayoutRect LayoutInline::clippedOverflowRect(const LayoutBoxModelObject* paintIn
validationContainer, const PaintInvalidationState* paintInvalidationState) const | 1046 LayoutRect LayoutInline::clippedOverflowRect(const LayoutBoxModelObject* paintIn
validationContainer, const PaintInvalidationState* paintInvalidationState) const |
| 1047 { | 1047 { |
| 1048 const LayoutBoxModelObject* continuation = this->continuation(); | 1048 const LayoutBoxModelObject* continuation = this->continuation(); |
| 1049 if ((!firstLineBoxIncludingCulling() && !continuation) || style()->visibilit
y() != VISIBLE) | 1049 if ((!firstLineBoxIncludingCulling() && !continuation) || style()->visibilit
y() != VISIBLE) |
| 1050 return LayoutRect(); | 1050 return LayoutRect(); |
| 1051 | 1051 |
| 1052 LayoutRect overflowRect(linesVisualOverflowBoundingBox()); | 1052 LayoutRect overflowRect(linesVisualOverflowBoundingBox()); |
| 1053 mapRectToPaintInvalidationBacking(paintInvalidationContainer, overflowRect,
paintInvalidationState); | 1053 mapRectToPaintInvalidationBacking(paintInvalidationContainer, overflowRect,
paintInvalidationState); |
| 1054 | 1054 |
| 1055 LayoutUnit outlineSize = style()->outlineSize(); | 1055 LayoutUnit outlineOutset = style()->outlineOutsetExtent(); |
| 1056 if (outlineSize) { | 1056 if (outlineOutset) { |
| 1057 for (LayoutObject* curr = firstChild(); curr; curr = curr->nextSibling()
) { | 1057 for (LayoutObject* curr = firstChild(); curr; curr = curr->nextSibling()
) { |
| 1058 if (!curr->isText()) | 1058 if (!curr->isText()) |
| 1059 overflowRect.unite(curr->rectWithOutlineForPaintInvalidation(pai
ntInvalidationContainer, outlineSize)); | 1059 overflowRect.unite(curr->rectWithOutlineForPaintInvalidation(pai
ntInvalidationContainer, outlineOutset)); |
| 1060 } | 1060 } |
| 1061 | 1061 |
| 1062 if (continuation && !continuation->isInline() && continuation->parent()) | 1062 if (continuation && !continuation->isInline() && continuation->parent()) |
| 1063 overflowRect.unite(continuation->rectWithOutlineForPaintInvalidation
(paintInvalidationContainer, outlineSize)); | 1063 overflowRect.unite(continuation->rectWithOutlineForPaintInvalidation
(paintInvalidationContainer, outlineOutset)); |
| 1064 } | 1064 } |
| 1065 | 1065 |
| 1066 return overflowRect; | 1066 return overflowRect; |
| 1067 } | 1067 } |
| 1068 | 1068 |
| 1069 LayoutRect LayoutInline::rectWithOutlineForPaintInvalidation(const LayoutBoxMode
lObject* paintInvalidationContainer, LayoutUnit outlineWidth, const PaintInvalid
ationState* paintInvalidationState) const | 1069 LayoutRect LayoutInline::rectWithOutlineForPaintInvalidation(const LayoutBoxMode
lObject* paintInvalidationContainer, LayoutUnit outlineWidth, const PaintInvalid
ationState* paintInvalidationState) const |
| 1070 { | 1070 { |
| 1071 LayoutRect r(LayoutBoxModelObject::rectWithOutlineForPaintInvalidation(paint
InvalidationContainer, outlineWidth, paintInvalidationState)); | 1071 LayoutRect r(LayoutBoxModelObject::rectWithOutlineForPaintInvalidation(paint
InvalidationContainer, outlineWidth, paintInvalidationState)); |
| 1072 for (LayoutObject* curr = firstChild(); curr; curr = curr->nextSibling()) { | 1072 for (LayoutObject* curr = firstChild(); curr; curr = curr->nextSibling()) { |
| 1073 if (!curr->isText()) | 1073 if (!curr->isText()) |
| (...skipping 295 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1369 | 1369 |
| 1370 void operator()(const FloatRect& rect) | 1370 void operator()(const FloatRect& rect) |
| 1371 { | 1371 { |
| 1372 if (!rect.isEmpty()) | 1372 if (!rect.isEmpty()) |
| 1373 AbsoluteLayoutRectsGeneratorContext::operator()(rect); | 1373 AbsoluteLayoutRectsGeneratorContext::operator()(rect); |
| 1374 } | 1374 } |
| 1375 }; | 1375 }; |
| 1376 | 1376 |
| 1377 } // unnamed namespace | 1377 } // unnamed namespace |
| 1378 | 1378 |
| 1379 void LayoutInline::addFocusRingRects(Vector<LayoutRect>& rects, const LayoutPoin
t& additionalOffset) const | 1379 void LayoutInline::addOutlineRects(Vector<LayoutRect>& rects, const LayoutPoint&
additionalOffset) const |
| 1380 { | 1380 { |
| 1381 // Add line boxes only if this object is the first object of addFocusRingRec
ts(). | 1381 // Add line boxes only if this object is the first object of addOutlineRects
(). |
| 1382 // Otherwise the parent (LayoutBlockFlow or LayoutInline) should have added
line box rects | 1382 // Otherwise the parent (LayoutBlockFlow or LayoutInline) should have added
line box rects |
| 1383 // covering those of this object. | 1383 // covering those of this object. |
| 1384 if (rects.isEmpty()) { | 1384 if (rects.isEmpty()) { |
| 1385 AbsoluteLayoutRectsIgnoringEmptyRectsGeneratorContext context(rects, add
itionalOffset); | 1385 AbsoluteLayoutRectsIgnoringEmptyRectsGeneratorContext context(rects, add
itionalOffset); |
| 1386 generateLineBoxRects(context); | 1386 generateLineBoxRects(context); |
| 1387 } | 1387 } |
| 1388 | 1388 |
| 1389 addFocusRingRectsForNormalChildren(rects, additionalOffset); | 1389 addOutlineRectsForNormalChildren(rects, additionalOffset); |
| 1390 | 1390 |
| 1391 if (LayoutBoxModelObject* continuation = this->continuation()) { | 1391 if (LayoutBoxModelObject* continuation = this->continuation()) { |
| 1392 if (continuation->isInline()) | 1392 if (continuation->isInline()) |
| 1393 continuation->addFocusRingRects(rects, additionalOffset + (continuat
ion->containingBlock()->location() - containingBlock()->location())); | 1393 continuation->addOutlineRects(rects, additionalOffset + (continuatio
n->containingBlock()->location() - containingBlock()->location())); |
| 1394 else | 1394 else |
| 1395 continuation->addFocusRingRects(rects, additionalOffset + (toLayoutB
ox(continuation)->location() - containingBlock()->location())); | 1395 continuation->addOutlineRects(rects, additionalOffset + (toLayoutBox
(continuation)->location() - containingBlock()->location())); |
| 1396 } | 1396 } |
| 1397 } | 1397 } |
| 1398 | 1398 |
| 1399 void LayoutInline::computeSelfHitTestRects(Vector<LayoutRect>& rects, const Layo
utPoint& layerOffset) const | 1399 void LayoutInline::computeSelfHitTestRects(Vector<LayoutRect>& rects, const Layo
utPoint& layerOffset) const |
| 1400 { | 1400 { |
| 1401 AbsoluteLayoutRectsGeneratorContext context(rects, layerOffset); | 1401 AbsoluteLayoutRectsGeneratorContext context(rects, layerOffset); |
| 1402 generateLineBoxRects(context); | 1402 generateLineBoxRects(context); |
| 1403 } | 1403 } |
| 1404 | 1404 |
| 1405 void LayoutInline::addAnnotatedRegions(Vector<AnnotatedRegionValue>& regions) | 1405 void LayoutInline::addAnnotatedRegions(Vector<AnnotatedRegionValue>& regions) |
| (...skipping 21 matching lines...) Expand all Loading... |
| 1427 } | 1427 } |
| 1428 | 1428 |
| 1429 void LayoutInline::invalidateDisplayItemClients(const LayoutBoxModelObject& pain
tInvalidationContainer) const | 1429 void LayoutInline::invalidateDisplayItemClients(const LayoutBoxModelObject& pain
tInvalidationContainer) const |
| 1430 { | 1430 { |
| 1431 LayoutBoxModelObject::invalidateDisplayItemClients(paintInvalidationContaine
r); | 1431 LayoutBoxModelObject::invalidateDisplayItemClients(paintInvalidationContaine
r); |
| 1432 for (InlineFlowBox* box = firstLineBox(); box; box = box->nextLineBox()) | 1432 for (InlineFlowBox* box = firstLineBox(); box; box = box->nextLineBox()) |
| 1433 paintInvalidationContainer.invalidateDisplayItemClientOnBacking(*box); | 1433 paintInvalidationContainer.invalidateDisplayItemClientOnBacking(*box); |
| 1434 } | 1434 } |
| 1435 | 1435 |
| 1436 } // namespace blink | 1436 } // namespace blink |
| OLD | NEW |