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

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

Issue 1278543002: Include the whole outline into visual overflow (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Avoid the global map Created 5 years, 4 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 | Annotate | Revision Log
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 855 matching lines...) Expand 10 before | Expand all | Expand 10 after
866 virtual void invalidatePaintForOverflow(); 866 virtual void invalidatePaintForOverflow();
867 void invalidatePaintForOverflowIfNeeded(); 867 void invalidatePaintForOverflowIfNeeded();
868 868
869 void invalidatePaintIncludingNonCompositingDescendants(); 869 void invalidatePaintIncludingNonCompositingDescendants();
870 void setShouldDoFullPaintInvalidationIncludingNonCompositingDescendants(); 870 void setShouldDoFullPaintInvalidationIncludingNonCompositingDescendants();
871 871
872 // Returns the rect that should have paint invalidated whenever this object changes. The rect is in the view's 872 // Returns the rect that should have paint invalidated whenever this object changes. The rect is in the view's
873 // coordinate space. This method deals with outlines and overflow. 873 // coordinate space. This method deals with outlines and overflow.
874 virtual LayoutRect absoluteClippedOverflowRect() const; 874 virtual LayoutRect absoluteClippedOverflowRect() const;
875 virtual LayoutRect clippedOverflowRectForPaintInvalidation(const LayoutBoxMo delObject* paintInvalidationContainer, const PaintInvalidationState* = nullptr) const; 875 virtual LayoutRect clippedOverflowRectForPaintInvalidation(const LayoutBoxMo delObject* paintInvalidationContainer, const PaintInvalidationState* = nullptr) const;
876 virtual LayoutRect rectWithOutlineForPaintInvalidation(const LayoutBoxModelO bject* paintInvalidationContainer, LayoutUnit outlineWidth, const PaintInvalidat ionState* = nullptr) const;
877 876
878 // Given a rect in the object's coordinate space, compute a rect suitable fo r invalidating paints of 877 // Given a rect in the object's coordinate space, compute a rect suitable fo r invalidating paints of
879 // that rect in the coordinate space of paintInvalidationContainer. 878 // that rect in the coordinate space of paintInvalidationContainer.
880 virtual void mapRectToPaintInvalidationBacking(const LayoutBoxModelObject* p aintInvalidationContainer, LayoutRect&, const PaintInvalidationState*) const; 879 virtual void mapRectToPaintInvalidationBacking(const LayoutBoxModelObject* p aintInvalidationContainer, LayoutRect&, const PaintInvalidationState*) const;
881 880
882 // Return the offset to the column in which the specified point (in flow-thr ead coordinates) 881 // Return the offset to the column in which the specified point (in flow-thr ead coordinates)
883 // lives. This is used to convert a flow-thread point to a visual point. 882 // lives. This is used to convert a flow-thread point to a visual point.
884 virtual LayoutSize columnOffset(const LayoutPoint&) const { return LayoutSiz e(); } 883 virtual LayoutSize columnOffset(const LayoutPoint&) const { return LayoutSiz e(); }
885 884
886 virtual unsigned length() const { return 1; } 885 virtual unsigned length() const { return 1; }
(...skipping 295 matching lines...) Expand 10 before | Expand all | Expand 10 after
1182 virtual PaintInvalidationReason invalidatePaintIfNeeded(PaintInvalidationSta te&, const LayoutBoxModelObject& paintInvalidationContainer); 1181 virtual PaintInvalidationReason invalidatePaintIfNeeded(PaintInvalidationSta te&, const LayoutBoxModelObject& paintInvalidationContainer);
1183 1182
1184 // When this object is invalidated for paint, this method is called to inval idate any DisplayItemClients 1183 // When this object is invalidated for paint, this method is called to inval idate any DisplayItemClients
1185 // owned by this object, including the object itself, LayoutText/LayoutInlin e line boxes, etc., 1184 // owned by this object, including the object itself, LayoutText/LayoutInlin e line boxes, etc.,
1186 // not including children which will be invalidated normally during invalida teTreeIfNeeded() and 1185 // not including children which will be invalidated normally during invalida teTreeIfNeeded() and
1187 // parts which are invalidated separately (e.g. scrollbars). 1186 // parts which are invalidated separately (e.g. scrollbars).
1188 virtual void invalidateDisplayItemClients(const LayoutBoxModelObject& paintI nvalidationContainer) const; 1187 virtual void invalidateDisplayItemClients(const LayoutBoxModelObject& paintI nvalidationContainer) const;
1189 1188
1190 void setIsSlowRepaintObject(bool); 1189 void setIsSlowRepaintObject(bool);
1191 1190
1191 bool containsInlineWithOutlineAndContinuation() const { return m_bitfields.c ontainsInlineWithOutlineAndContinuation(); }
1192 void setContainsInlineWithOutlineAndContinuation(bool b) { m_bitfields.setCo ntainsInlineWithOutlineAndContinuation(b); }
1193
1192 private: 1194 private:
1193 void clearLayoutRootIfNeeded() const; 1195 void clearLayoutRootIfNeeded() const;
1194 1196
1195 bool isInert() const; 1197 bool isInert() const;
1196 1198
1197 void updateImage(StyleImage*, StyleImage*); 1199 void updateImage(StyleImage*, StyleImage*);
1198 1200
1199 void scheduleRelayout(); 1201 void scheduleRelayout();
1200 1202
1201 void updateShapeImage(const ShapeValue*, const ShapeValue*); 1203 void updateShapeImage(const ShapeValue*, const ShapeValue*);
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
1307 , m_hasCounterNodeMap(false) 1309 , m_hasCounterNodeMap(false)
1308 , m_everHadLayout(false) 1310 , m_everHadLayout(false)
1309 , m_ancestorLineBoxDirty(false) 1311 , m_ancestorLineBoxDirty(false)
1310 , m_layoutDidGetCalledSinceLastFrame(false) 1312 , m_layoutDidGetCalledSinceLastFrame(false)
1311 , m_hasPendingResourceUpdate(false) 1313 , m_hasPendingResourceUpdate(false)
1312 , m_isInsideFlowThread(false) 1314 , m_isInsideFlowThread(false)
1313 , m_subtreeChangeListenerRegistered(false) 1315 , m_subtreeChangeListenerRegistered(false)
1314 , m_notifiedOfSubtreeChange(false) 1316 , m_notifiedOfSubtreeChange(false)
1315 , m_consumesSubtreeChangeNotification(false) 1317 , m_consumesSubtreeChangeNotification(false)
1316 , m_childrenInline(false) 1318 , m_childrenInline(false)
1319 , m_containsInlineWithOutlineAndContinuation(false)
1317 , m_alwaysCreateLineBoxesForLayoutInline(false) 1320 , m_alwaysCreateLineBoxesForLayoutInline(false)
1318 , m_lastBoxDecorationBackgroundObscured(false) 1321 , m_lastBoxDecorationBackgroundObscured(false)
1319 , m_isSlowRepaintObject(false) 1322 , m_isSlowRepaintObject(false)
1320 , m_positionedState(IsStaticallyPositioned) 1323 , m_positionedState(IsStaticallyPositioned)
1321 , m_selectionState(SelectionNone) 1324 , m_selectionState(SelectionNone)
1322 , m_boxDecorationBackgroundState(NoBoxDecorationBackground) 1325 , m_boxDecorationBackgroundState(NoBoxDecorationBackground)
1323 , m_fullPaintInvalidationReason(PaintInvalidationNone) 1326 , m_fullPaintInvalidationReason(PaintInvalidationNone)
1324 { 1327 {
1325 } 1328 }
1326 1329
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
1362 1365
1363 ADD_BOOLEAN_BITFIELD(isInsideFlowThread, IsInsideFlowThread); 1366 ADD_BOOLEAN_BITFIELD(isInsideFlowThread, IsInsideFlowThread);
1364 1367
1365 ADD_BOOLEAN_BITFIELD(subtreeChangeListenerRegistered, SubtreeChangeListe nerRegistered); 1368 ADD_BOOLEAN_BITFIELD(subtreeChangeListenerRegistered, SubtreeChangeListe nerRegistered);
1366 ADD_BOOLEAN_BITFIELD(notifiedOfSubtreeChange, NotifiedOfSubtreeChange); 1369 ADD_BOOLEAN_BITFIELD(notifiedOfSubtreeChange, NotifiedOfSubtreeChange);
1367 ADD_BOOLEAN_BITFIELD(consumesSubtreeChangeNotification, ConsumesSubtreeC hangeNotification); 1370 ADD_BOOLEAN_BITFIELD(consumesSubtreeChangeNotification, ConsumesSubtreeC hangeNotification);
1368 1371
1369 // from LayoutBlock 1372 // from LayoutBlock
1370 ADD_BOOLEAN_BITFIELD(childrenInline, ChildrenInline); 1373 ADD_BOOLEAN_BITFIELD(childrenInline, ChildrenInline);
1371 1374
1375 // from LayoutBlockFlow
1376 ADD_BOOLEAN_BITFIELD(containsInlineWithOutlineAndContinuation, ContainsI nlineWithOutlineAndContinuation);
1377
1372 // from LayoutInline 1378 // from LayoutInline
1373 ADD_BOOLEAN_BITFIELD(alwaysCreateLineBoxesForLayoutInline, AlwaysCreateL ineBoxesForLayoutInline); 1379 ADD_BOOLEAN_BITFIELD(alwaysCreateLineBoxesForLayoutInline, AlwaysCreateL ineBoxesForLayoutInline);
1374 1380
1375 // For slimming-paint. 1381 // For slimming-paint.
1376 ADD_BOOLEAN_BITFIELD(lastBoxDecorationBackgroundObscured, LastBoxDecorat ionBackgroundObscured); 1382 ADD_BOOLEAN_BITFIELD(lastBoxDecorationBackgroundObscured, LastBoxDecorat ionBackgroundObscured);
1377 1383
1378 ADD_BOOLEAN_BITFIELD(isSlowRepaintObject, IsSlowRepaintObject); 1384 ADD_BOOLEAN_BITFIELD(isSlowRepaintObject, IsSlowRepaintObject);
1379 1385
1380 private: 1386 private:
1381 unsigned m_positionedState : 2; // PositionedState 1387 unsigned m_positionedState : 2; // PositionedState
(...skipping 275 matching lines...) Expand 10 before | Expand all | Expand 10 after
1657 void showTree(const blink::LayoutObject*); 1663 void showTree(const blink::LayoutObject*);
1658 void showLineTree(const blink::LayoutObject*); 1664 void showLineTree(const blink::LayoutObject*);
1659 void showLayoutTree(const blink::LayoutObject* object1); 1665 void showLayoutTree(const blink::LayoutObject* object1);
1660 // We don't make object2 an optional parameter so that showLayoutTree 1666 // We don't make object2 an optional parameter so that showLayoutTree
1661 // can be called from gdb easily. 1667 // can be called from gdb easily.
1662 void showLayoutTree(const blink::LayoutObject* object1, const blink::LayoutObjec t* object2); 1668 void showLayoutTree(const blink::LayoutObject* object1, const blink::LayoutObjec t* object2);
1663 1669
1664 #endif 1670 #endif
1665 1671
1666 #endif // LayoutObject_h 1672 #endif // LayoutObject_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698