Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(701)

Side by Side Diff: third_party/WebKit/Source/core/layout/LayoutObject.h

Issue 1955073002: LayoutObject::paintingLayer() to correctly handle column-span:all (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2000 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 2000 Lars Knoll (knoll@kde.org)
3 * (C) 2000 Antti Koivisto (koivisto@kde.org) 3 * (C) 2000 Antti Koivisto (koivisto@kde.org)
4 * (C) 2000 Dirk Mueller (mueller@kde.org) 4 * (C) 2000 Dirk Mueller (mueller@kde.org)
5 * (C) 2004 Allan Sandfeld Jensen (kde@carewolf.com) 5 * (C) 2004 Allan Sandfeld Jensen (kde@carewolf.com)
6 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2012 Apple Inc. All r ights reserved. 6 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2012 Apple Inc. All r ights reserved.
7 * Copyright (C) 2009 Google Inc. All rights reserved. 7 * Copyright (C) 2009 Google Inc. 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 251 matching lines...) Expand 10 before | Expand all | Expand 10 after
262 LayoutObject* nextInPreOrder() const; 262 LayoutObject* nextInPreOrder() const;
263 LayoutObject* nextInPreOrder(const LayoutObject* stayWithin) const; 263 LayoutObject* nextInPreOrder(const LayoutObject* stayWithin) const;
264 LayoutObject* nextInPreOrderAfterChildren() const; 264 LayoutObject* nextInPreOrderAfterChildren() const;
265 LayoutObject* nextInPreOrderAfterChildren(const LayoutObject* stayWithin) co nst; 265 LayoutObject* nextInPreOrderAfterChildren(const LayoutObject* stayWithin) co nst;
266 LayoutObject* previousInPreOrder() const; 266 LayoutObject* previousInPreOrder() const;
267 LayoutObject* previousInPreOrder(const LayoutObject* stayWithin) const; 267 LayoutObject* previousInPreOrder(const LayoutObject* stayWithin) const;
268 LayoutObject* childAt(unsigned) const; 268 LayoutObject* childAt(unsigned) const;
269 269
270 LayoutObject* lastLeafChild() const; 270 LayoutObject* lastLeafChild() const;
271 271
272 // The following six functions are used when the layout tree hierarchy chang es to make sure layers get 272 // The following functions are used when the layout tree hierarchy changes t o make sure layers get
273 // properly added and removed. Since containership can be implemented by an y subclass, and since a hierarchy 273 // properly added and removed. Since containership can be implemented by an y subclass, and since a hierarchy
274 // can contain a mixture of boxes and other object types, these functions ne ed to be in the base class. 274 // can contain a mixture of boxes and other object types, these functions ne ed to be in the base class.
275 PaintLayer* enclosingLayer() const; 275 PaintLayer* enclosingLayer() const;
276 void addLayers(PaintLayer* parentLayer); 276 void addLayers(PaintLayer* parentLayer);
277 void removeLayers(PaintLayer* parentLayer); 277 void removeLayers(PaintLayer* parentLayer);
278 void moveLayers(PaintLayer* oldParent, PaintLayer* newParent); 278 void moveLayers(PaintLayer* oldParent, PaintLayer* newParent);
279 PaintLayer* findNextLayer(PaintLayer* parentLayer, LayoutObject* startPoint, bool checkParent = true); 279 PaintLayer* findNextLayer(PaintLayer* parentLayer, LayoutObject* startPoint, bool checkParent = true);
280 280
281 // Returns the layer that will paint this object.
282 // If possible, use the faster PaintInvalidationState::paintingLayer() inste ad.
283 PaintLayer* paintingLayer() const;
284
281 // Scrolling is a LayoutBox concept, however some code just cares about recu rsively scrolling our enclosing ScrollableArea(s). 285 // Scrolling is a LayoutBox concept, however some code just cares about recu rsively scrolling our enclosing ScrollableArea(s).
282 bool scrollRectToVisible( 286 bool scrollRectToVisible(
283 const LayoutRect&, 287 const LayoutRect&,
284 const ScrollAlignment& alignX = ScrollAlignment::alignCenterIfNeeded, 288 const ScrollAlignment& alignX = ScrollAlignment::alignCenterIfNeeded,
285 const ScrollAlignment& alignY = ScrollAlignment::alignCenterIfNeeded, 289 const ScrollAlignment& alignY = ScrollAlignment::alignCenterIfNeeded,
286 ScrollType = ProgrammaticScroll, 290 ScrollType = ProgrammaticScroll,
287 bool makeVisibleInVisualViewport = true); 291 bool makeVisibleInVisualViewport = true);
288 292
289 // Convenience function for getting to the nearest enclosing box of a Layout Object. 293 // Convenience function for getting to the nearest enclosing box of a Layout Object.
290 LayoutBox* enclosingBox() const; 294 LayoutBox* enclosingBox() const;
(...skipping 1259 matching lines...) Expand 10 before | Expand all | Expand 10 after
1550 1554
1551 // This function generates the invalidation for this object only. 1555 // This function generates the invalidation for this object only.
1552 // It doesn't recurse into other object, as this is handled 1556 // It doesn't recurse into other object, as this is handled
1553 // by invalidatePaintOfSubtreesIfNeeded. 1557 // by invalidatePaintOfSubtreesIfNeeded.
1554 virtual PaintInvalidationReason invalidatePaintIfNeeded(const PaintInvalidat ionState&); 1558 virtual PaintInvalidationReason invalidatePaintIfNeeded(const PaintInvalidat ionState&);
1555 1559
1556 // When this object is invalidated for paint, this method is called to inval idate any DisplayItemClients 1560 // When this object is invalidated for paint, this method is called to inval idate any DisplayItemClients
1557 // owned by this object, including the object itself, LayoutText/LayoutInlin e line boxes, etc., 1561 // owned by this object, including the object itself, LayoutText/LayoutInlin e line boxes, etc.,
1558 // not including children which will be invalidated normally during invalida teTreeIfNeeded() and 1562 // not including children which will be invalidated normally during invalida teTreeIfNeeded() and
1559 // parts which are invalidated separately (e.g. scrollbars). 1563 // parts which are invalidated separately (e.g. scrollbars).
1560 // The caller should ensure the enclosing layer has been setNeedsRepaint bef ore calling this function. 1564 // The caller should ensure the painting layer has been setNeedsRepaint befo re calling this function.
1561 virtual void invalidateDisplayItemClients(const LayoutBoxModelObject& paintI nvalidationContainer, PaintInvalidationReason) const; 1565 virtual void invalidateDisplayItemClients(const LayoutBoxModelObject& paintI nvalidationContainer, PaintInvalidationReason) const;
1562 1566
1567 // If possible, use the faster paintInvalidationState.paintingLayer().setNee dsRepaint().
1568 void setPaintingLayerNeedsRepaint() const;
1569
1563 // Sets enclosing layer needsRepaint, then calls invalidateDisplayItemClient s(). 1570 // Sets enclosing layer needsRepaint, then calls invalidateDisplayItemClient s().
1564 // Should use this version when PaintInvalidationState is available. 1571 // Should use this version when PaintInvalidationState is available.
1565 void invalidateDisplayItemClientsWithPaintInvalidationState(const LayoutBoxM odelObject& paintInvalidationContainer, const PaintInvalidationState&, PaintInva lidationReason) const; 1572 void invalidateDisplayItemClientsWithPaintInvalidationState(const LayoutBoxM odelObject& paintInvalidationContainer, const PaintInvalidationState&, PaintInva lidationReason) const;
1566 1573
1567 void setIsBackgroundAttachmentFixedObject(bool); 1574 void setIsBackgroundAttachmentFixedObject(bool);
1568 1575
1569 void clearSelfNeedsOverflowRecalcAfterStyleChange() { m_bitfields.setSelfNee dsOverflowRecalcAfterStyleChange(false); } 1576 void clearSelfNeedsOverflowRecalcAfterStyleChange() { m_bitfields.setSelfNee dsOverflowRecalcAfterStyleChange(false); }
1570 void setShouldInvalidateOverflowForPaint() { m_bitfields.setShouldInvalidate OverflowForPaint(true); } 1577 void setShouldInvalidateOverflowForPaint() { m_bitfields.setShouldInvalidate OverflowForPaint(true); }
1571 void setEverHadLayout() { m_bitfields.setEverHadLayout(true); } 1578 void setEverHadLayout() { m_bitfields.setEverHadLayout(true); }
1572 1579
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
1609 inline void markAncestorsForOverflowRecalcIfNeeded(); 1616 inline void markAncestorsForOverflowRecalcIfNeeded();
1610 1617
1611 inline void markAncestorsForPaintInvalidation(); 1618 inline void markAncestorsForPaintInvalidation();
1612 1619
1613 inline void invalidateSelectionIfNeeded(const LayoutBoxModelObject& paintInv alidationContainer, const PaintInvalidationState&, PaintInvalidationReason); 1620 inline void invalidateSelectionIfNeeded(const LayoutBoxModelObject& paintInv alidationContainer, const PaintInvalidationState&, PaintInvalidationReason);
1614 1621
1615 inline void invalidateContainerPreferredLogicalWidths(); 1622 inline void invalidateContainerPreferredLogicalWidths();
1616 1623
1617 void invalidatePaintIncludingNonSelfPaintingLayerDescendantsInternal(const L ayoutBoxModelObject& paintInvalidationContainer); 1624 void invalidatePaintIncludingNonSelfPaintingLayerDescendantsInternal(const L ayoutBoxModelObject& paintInvalidationContainer);
1618 1625
1619 // The caller should ensure the enclosing layer has been setNeedsRepaint bef ore calling this function. 1626 // The caller should ensure the painting layer has been setNeedsRepaint befo re calling this function.
1620 void invalidatePaintOfPreviousPaintInvalidationRect(const LayoutBoxModelObje ct& paintInvalidationContainer, PaintInvalidationReason); 1627 void invalidatePaintOfPreviousPaintInvalidationRect(const LayoutBoxModelObje ct& paintInvalidationContainer, PaintInvalidationReason);
1621 1628
1622 LayoutRect previousSelectionRectForPaintInvalidation() const; 1629 LayoutRect previousSelectionRectForPaintInvalidation() const;
1623 void setPreviousSelectionRectForPaintInvalidation(const LayoutRect&); 1630 void setPreviousSelectionRectForPaintInvalidation(const LayoutRect&);
1624 1631
1625 LayoutObject* containerForAbsolutePosition(const LayoutBoxModelObject* ances tor = nullptr, bool* ancestorSkipped = nullptr, bool* filterOrReflectionSkipped = nullptr) const; 1632 LayoutObject* containerForAbsolutePosition(const LayoutBoxModelObject* ances tor = nullptr, bool* ancestorSkipped = nullptr, bool* filterOrReflectionSkipped = nullptr) const;
1626 1633
1627 const LayoutBoxModelObject* enclosingCompositedContainer() const; 1634 const LayoutBoxModelObject* enclosingCompositedContainer() const;
1628 1635
1629 LayoutFlowThread* locateFlowThreadContainingBlock() const; 1636 LayoutFlowThread* locateFlowThreadContainingBlock() const;
(...skipping 542 matching lines...) Expand 10 before | Expand all | Expand 10 after
2172 void showTree(const blink::LayoutObject*); 2179 void showTree(const blink::LayoutObject*);
2173 void showLineTree(const blink::LayoutObject*); 2180 void showLineTree(const blink::LayoutObject*);
2174 void showLayoutTree(const blink::LayoutObject* object1); 2181 void showLayoutTree(const blink::LayoutObject* object1);
2175 // We don't make object2 an optional parameter so that showLayoutTree 2182 // We don't make object2 an optional parameter so that showLayoutTree
2176 // can be called from gdb easily. 2183 // can be called from gdb easily.
2177 void showLayoutTree(const blink::LayoutObject* object1, const blink::LayoutObjec t* object2); 2184 void showLayoutTree(const blink::LayoutObject* object1, const blink::LayoutObjec t* object2);
2178 2185
2179 #endif 2186 #endif
2180 2187
2181 #endif // LayoutObject_h 2188 #endif // LayoutObject_h
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/layout/LayoutBox.cpp ('k') | third_party/WebKit/Source/core/layout/LayoutObject.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698