Chromium Code Reviews| 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) 2005 Allan Sandfeld Jensen (kde@carewolf.com) | 4 * (C) 2005 Allan Sandfeld Jensen (kde@carewolf.com) |
| 5 * (C) 2005, 2006 Samuel Weinig (sam.weinig@gmail.com) | 5 * (C) 2005, 2006 Samuel Weinig (sam.weinig@gmail.com) |
| 6 * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserv ed. | 6 * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserv ed. |
| 7 * Copyright (C) 2013 Adobe Systems Incorporated. All rights reserved. | 7 * Copyright (C) 2013 Adobe Systems Incorporated. All rights reserved. |
| 8 * | 8 * |
| 9 * This library is free software; you can redistribute it and/or | 9 * This library is free software; you can redistribute it and/or |
| 10 * modify it under the terms of the GNU Library General Public | 10 * modify it under the terms of the GNU Library General Public |
| (...skipping 1453 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1464 layoutView = layoutView->frame()->ownerLayoutObject()->view(); | 1464 layoutView = layoutView->frame()->ownerLayoutObject()->view(); |
| 1465 mapToVisibleRectInAncestorSpace(layoutView, rect, nullptr); | 1465 mapToVisibleRectInAncestorSpace(layoutView, rect, nullptr); |
| 1466 return rect.intersects(LayoutRect(layoutView->frameView()->scrollableArea()- >visibleContentRectDouble())); | 1466 return rect.intersects(LayoutRect(layoutView->frameView()->scrollableArea()- >visibleContentRectDouble())); |
| 1467 } | 1467 } |
| 1468 | 1468 |
| 1469 PaintInvalidationReason LayoutBox::invalidatePaintIfNeeded(PaintInvalidationStat e& paintInvalidationState, const LayoutBoxModelObject& paintInvalidationContaine r) | 1469 PaintInvalidationReason LayoutBox::invalidatePaintIfNeeded(PaintInvalidationStat e& paintInvalidationState, const LayoutBoxModelObject& paintInvalidationContaine r) |
| 1470 { | 1470 { |
| 1471 if (isFloating()) | 1471 if (isFloating()) |
| 1472 paintInvalidationState.enclosingSelfPaintingLayer(*this).setNeedsPaintPh aseFloat(); | 1472 paintInvalidationState.enclosingSelfPaintingLayer(*this).setNeedsPaintPh aseFloat(); |
| 1473 | 1473 |
| 1474 if (hasBoxDecorationBackground() || (hasOverflowClip() && scrollableArea()-> hasOverflowControls())) { | |
|
chrishtr
2016/02/01 17:43:49
Why the is this logic the right logic? In particul
Xianzhu
2016/02/01 17:58:39
Added comment:
// We also paint overflow controls
| |
| 1475 PaintLayer& layer = paintInvalidationState.enclosingSelfPaintingLayer(*t his); | |
| 1476 if (layer.layoutObject() != this) | |
| 1477 layer.setNeedsPaintPhaseDescendantBlockBackgrounds(); | |
| 1478 } | |
| 1479 | |
| 1474 PaintInvalidationReason fullInvalidationReason = fullPaintInvalidationReason (); | 1480 PaintInvalidationReason fullInvalidationReason = fullPaintInvalidationReason (); |
| 1475 // If the current paint invalidation reason is PaintInvalidationDelayedFull, then this paint invalidation can delayed if the | 1481 // If the current paint invalidation reason is PaintInvalidationDelayedFull, then this paint invalidation can delayed if the |
| 1476 // LayoutBox in question is not on-screen. The logic to decide whether this is appropriate exists at the site of the original | 1482 // LayoutBox in question is not on-screen. The logic to decide whether this is appropriate exists at the site of the original |
| 1477 // paint invalidation that chose PaintInvalidationDelayedFull. | 1483 // paint invalidation that chose PaintInvalidationDelayedFull. |
| 1478 if (fullInvalidationReason == PaintInvalidationDelayedFull) { | 1484 if (fullInvalidationReason == PaintInvalidationDelayedFull) { |
| 1479 if (!intersectsVisibleViewport()) | 1485 if (!intersectsVisibleViewport()) |
| 1480 return PaintInvalidationDelayedFull; | 1486 return PaintInvalidationDelayedFull; |
| 1481 | 1487 |
| 1482 // Reset state back to regular full paint invalidation if the object is onscreen. | 1488 // Reset state back to regular full paint invalidation if the object is onscreen. |
| 1483 setShouldDoFullPaintInvalidation(PaintInvalidationFull); | 1489 setShouldDoFullPaintInvalidation(PaintInvalidationFull); |
| (...skipping 3156 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 4640 | 4646 |
| 4641 void LayoutBox::clearPercentHeightDescendants() | 4647 void LayoutBox::clearPercentHeightDescendants() |
| 4642 { | 4648 { |
| 4643 for (LayoutObject* curr = slowFirstChild(); curr; curr = curr->nextInPreOrde r(this)) { | 4649 for (LayoutObject* curr = slowFirstChild(); curr; curr = curr->nextInPreOrde r(this)) { |
| 4644 if (curr->isBox()) | 4650 if (curr->isBox()) |
| 4645 toLayoutBox(curr)->removeFromPercentHeightContainer(); | 4651 toLayoutBox(curr)->removeFromPercentHeightContainer(); |
| 4646 } | 4652 } |
| 4647 } | 4653 } |
| 4648 | 4654 |
| 4649 } // namespace blink | 4655 } // namespace blink |
| OLD | NEW |