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 * (C) 2007 David Smith (catfish.man@gmail.com) | 4 * (C) 2007 David Smith (catfish.man@gmail.com) |
5 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc.
All rights reserved. | 5 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc.
All rights reserved. |
6 * Copyright (C) Research In Motion Limited 2010. All rights reserved. | 6 * Copyright (C) Research In Motion Limited 2010. All rights reserved. |
7 * | 7 * |
8 * This library is free software; you can redistribute it and/or | 8 * This library is free software; you can redistribute it and/or |
9 * modify it under the terms of the GNU Library General Public | 9 * modify it under the terms of the GNU Library General Public |
10 * License as published by the Free Software Foundation; either | 10 * License as published by the Free Software Foundation; either |
(...skipping 350 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
361 startOfContinuations = inlineElementContinuation->node()->layoutObject()
; | 361 startOfContinuations = inlineElementContinuation->node()->layoutObject()
; |
362 } else if (LayoutObject* firstChild = block.firstChild()) { | 362 } else if (LayoutObject* firstChild = block.firstChild()) { |
363 // This block is the anonymous containing block of an inline element con
tinuation. | 363 // This block is the anonymous containing block of an inline element con
tinuation. |
364 if (firstChild->isElementContinuation()) | 364 if (firstChild->isElementContinuation()) |
365 startOfContinuations = firstChild->node()->layoutObject(); | 365 startOfContinuations = firstChild->node()->layoutObject(); |
366 } | 366 } |
367 if (startOfContinuations && startOfContinuations->styleRef().outlineStyleIsA
uto()) | 367 if (startOfContinuations && startOfContinuations->styleRef().outlineStyleIsA
uto()) |
368 startOfContinuations->invalidateDisplayItemClient(*startOfContinuations)
; | 368 startOfContinuations->invalidateDisplayItemClient(*startOfContinuations)
; |
369 } | 369 } |
370 | 370 |
371 void LayoutBlock::invalidateDisplayItemClients(const LayoutBoxModelObject& paint
InvalidationContainer) const | 371 void LayoutBlock::invalidateDisplayItemClients(const LayoutBoxModelObject& paint
InvalidationContainer) |
372 { | 372 { |
373 LayoutBox::invalidateDisplayItemClients(paintInvalidationContainer); | 373 LayoutBox::invalidateDisplayItemClients(paintInvalidationContainer); |
374 ASSERT(RuntimeEnabledFeatures::slimmingPaintEnabled()); | 374 ASSERT(RuntimeEnabledFeatures::slimmingPaintEnabled()); |
375 invalidateDisplayItemClientForStartOfContinuationsIfNeeded(*this); | 375 invalidateDisplayItemClientForStartOfContinuationsIfNeeded(*this); |
376 } | 376 } |
377 | 377 |
| 378 void LayoutBlock::clearRepaintFlagsOfSubtrees() |
| 379 { |
| 380 LayoutBox::clearRepaintFlagsOfSubtrees(); |
| 381 // TODO(wangxianzhu): We should traverse in painting order instead of positi
oning order. |
| 382 // See comments in LayoutObject::markContainerChainForChildNeedsRepaint. |
| 383 if (TrackedLayoutBoxListHashSet* positionedObjects = this->positionedObjects
()) { |
| 384 for (auto o : *positionedObjects) |
| 385 o->clearRepaintFlagsRecursively(); |
| 386 } |
| 387 } |
| 388 |
378 void LayoutBlock::addChildIgnoringContinuation(LayoutObject* newChild, LayoutObj
ect* beforeChild) | 389 void LayoutBlock::addChildIgnoringContinuation(LayoutObject* newChild, LayoutObj
ect* beforeChild) |
379 { | 390 { |
380 if (beforeChild && beforeChild->parent() != this) { | 391 if (beforeChild && beforeChild->parent() != this) { |
381 LayoutObject* beforeChildContainer = beforeChild->parent(); | 392 LayoutObject* beforeChildContainer = beforeChild->parent(); |
382 while (beforeChildContainer->parent() != this) | 393 while (beforeChildContainer->parent() != this) |
383 beforeChildContainer = beforeChildContainer->parent(); | 394 beforeChildContainer = beforeChildContainer->parent(); |
384 ASSERT(beforeChildContainer); | 395 ASSERT(beforeChildContainer); |
385 | 396 |
386 if (beforeChildContainer->isAnonymous()) { | 397 if (beforeChildContainer->isAnonymous()) { |
387 // If the requested beforeChild is not one of our children, then thi
s is because | 398 // If the requested beforeChild is not one of our children, then thi
s is because |
(...skipping 2530 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2918 void LayoutBlock::showLineTreeAndMark(const InlineBox* markedBox1, const char* m
arkedLabel1, const InlineBox* markedBox2, const char* markedLabel2, const Layout
Object* obj) const | 2929 void LayoutBlock::showLineTreeAndMark(const InlineBox* markedBox1, const char* m
arkedLabel1, const InlineBox* markedBox2, const char* markedLabel2, const Layout
Object* obj) const |
2919 { | 2930 { |
2920 showLayoutObject(); | 2931 showLayoutObject(); |
2921 for (const RootInlineBox* root = firstRootBox(); root; root = root->nextRoot
Box()) | 2932 for (const RootInlineBox* root = firstRootBox(); root; root = root->nextRoot
Box()) |
2922 root->showLineTreeAndMark(markedBox1, markedLabel1, markedBox2, markedLa
bel2, obj, 1); | 2933 root->showLineTreeAndMark(markedBox1, markedLabel1, markedBox2, markedLa
bel2, obj, 1); |
2923 } | 2934 } |
2924 | 2935 |
2925 #endif | 2936 #endif |
2926 | 2937 |
2927 } // namespace blink | 2938 } // namespace blink |
OLD | NEW |