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

Side by Side Diff: Source/core/layout/line/LineLayoutState.h

Issue 1175953003: Revert "Remove obsolete float-management code from line layout" (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 5 years, 6 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 * Copyright (C) 2003, 2004, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All r ight reserved. 3 * Copyright (C) 2003, 2004, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All r ight reserved.
4 * Copyright (C) 2010 Google Inc. All rights reserved. 4 * Copyright (C) 2010 Google Inc. All rights reserved.
5 * Copyright (C) 2014 Adobe Systems Incorporated. All rights reserved. 5 * Copyright (C) 2014 Adobe Systems Incorporated. All rights reserved.
6 * 6 *
7 * This library is free software; you can redistribute it and/or 7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Library General Public 8 * modify it under the terms of the GNU Library General Public
9 * License as published by the Free Software Foundation; either 9 * License as published by the Free Software Foundation; either
10 * version 2 of the License, or (at your option) any later version. 10 * version 2 of the License, or (at your option) any later version.
(...skipping 21 matching lines...) Expand all
32 // Like LayoutState for layout(), LineLayoutState keeps track of global informat ion 32 // Like LayoutState for layout(), LineLayoutState keeps track of global informat ion
33 // during an entire linebox tree layout pass (aka layoutInlineChildren). 33 // during an entire linebox tree layout pass (aka layoutInlineChildren).
34 class LineLayoutState { 34 class LineLayoutState {
35 public: 35 public:
36 LineLayoutState(bool fullLayout, LayoutUnit& paintInvalidationLogicalTop, La youtUnit& paintInvalidationLogicalBottom, LayoutFlowThread* flowThread) 36 LineLayoutState(bool fullLayout, LayoutUnit& paintInvalidationLogicalTop, La youtUnit& paintInvalidationLogicalBottom, LayoutFlowThread* flowThread)
37 : m_lastFloat(nullptr) 37 : m_lastFloat(nullptr)
38 , m_endLine(nullptr) 38 , m_endLine(nullptr)
39 , m_floatIndex(0) 39 , m_floatIndex(0)
40 , m_endLineLogicalTop(0) 40 , m_endLineLogicalTop(0)
41 , m_endLineMatched(false) 41 , m_endLineMatched(false)
42 , m_checkForFloatsFromLastLine(false)
42 , m_hasInlineChild(false) 43 , m_hasInlineChild(false)
43 , m_isFullLayout(fullLayout) 44 , m_isFullLayout(fullLayout)
44 , m_containsBRWithClear(false) 45 , m_containsBRWithClear(false)
45 , m_paintInvalidationLogicalTop(paintInvalidationLogicalTop) 46 , m_paintInvalidationLogicalTop(paintInvalidationLogicalTop)
46 , m_paintInvalidationLogicalBottom(paintInvalidationLogicalBottom) 47 , m_paintInvalidationLogicalBottom(paintInvalidationLogicalBottom)
47 , m_adjustedLogicalLineTop(0) 48 , m_adjustedLogicalLineTop(0)
48 , m_usesPaintInvalidationBounds(false) 49 , m_usesPaintInvalidationBounds(false)
49 , m_flowThread(flowThread) 50 , m_flowThread(flowThread)
50 { } 51 { }
51 52
(...skipping 11 matching lines...) Expand all
63 void updatePaintInvalidationRangeFromBox(RootInlineBox* box, LayoutUnit pagi nationDelta = 0) 64 void updatePaintInvalidationRangeFromBox(RootInlineBox* box, LayoutUnit pagi nationDelta = 0)
64 { 65 {
65 m_usesPaintInvalidationBounds = true; 66 m_usesPaintInvalidationBounds = true;
66 m_paintInvalidationLogicalTop = std::min(m_paintInvalidationLogicalTop, box->logicalTopVisualOverflow() + std::min<LayoutUnit>(paginationDelta, 0)); 67 m_paintInvalidationLogicalTop = std::min(m_paintInvalidationLogicalTop, box->logicalTopVisualOverflow() + std::min<LayoutUnit>(paginationDelta, 0));
67 m_paintInvalidationLogicalBottom = std::max(m_paintInvalidationLogicalBo ttom, box->logicalBottomVisualOverflow() + std::max<LayoutUnit>(paginationDelta, 0)); 68 m_paintInvalidationLogicalBottom = std::max(m_paintInvalidationLogicalBo ttom, box->logicalBottomVisualOverflow() + std::max<LayoutUnit>(paginationDelta, 0));
68 } 69 }
69 70
70 bool endLineMatched() const { return m_endLineMatched; } 71 bool endLineMatched() const { return m_endLineMatched; }
71 void setEndLineMatched(bool endLineMatched) { m_endLineMatched = endLineMatc hed; } 72 void setEndLineMatched(bool endLineMatched) { m_endLineMatched = endLineMatc hed; }
72 73
74 bool checkForFloatsFromLastLine() const { return m_checkForFloatsFromLastLin e; }
75 void setCheckForFloatsFromLastLine(bool check) { m_checkForFloatsFromLastLin e = check; }
76
73 bool hasInlineChild() const { return m_hasInlineChild; } 77 bool hasInlineChild() const { return m_hasInlineChild; }
74 void setHasInlineChild(bool hasInlineChild) { m_hasInlineChild = hasInlineCh ild; } 78 void setHasInlineChild(bool hasInlineChild) { m_hasInlineChild = hasInlineCh ild; }
75 79
76 bool containsBRWithClear() const { return m_containsBRWithClear; } 80 bool containsBRWithClear() const { return m_containsBRWithClear; }
77 void setContainsBRWithClear(bool containsBRWithClear) { m_containsBRWithClea r = containsBRWithClear; } 81 void setContainsBRWithClear(bool containsBRWithClear) { m_containsBRWithClea r = containsBRWithClear; }
78 82
79 LineInfo& lineInfo() { return m_lineInfo; } 83 LineInfo& lineInfo() { return m_lineInfo; }
80 const LineInfo& lineInfo() const { return m_lineInfo; } 84 const LineInfo& lineInfo() const { return m_lineInfo; }
81 85
82 LayoutUnit endLineLogicalTop() const { return m_endLineLogicalTop; } 86 LayoutUnit endLineLogicalTop() const { return m_endLineLogicalTop; }
(...skipping 16 matching lines...) Expand all
99 LayoutFlowThread* flowThread() const { return m_flowThread; } 103 LayoutFlowThread* flowThread() const { return m_flowThread; }
100 104
101 private: 105 private:
102 Vector<LayoutBlockFlow::FloatWithRect> m_floats; 106 Vector<LayoutBlockFlow::FloatWithRect> m_floats;
103 FloatingObject* m_lastFloat; 107 FloatingObject* m_lastFloat;
104 RootInlineBox* m_endLine; 108 RootInlineBox* m_endLine;
105 LineInfo m_lineInfo; 109 LineInfo m_lineInfo;
106 unsigned m_floatIndex; 110 unsigned m_floatIndex;
107 LayoutUnit m_endLineLogicalTop; 111 LayoutUnit m_endLineLogicalTop;
108 bool m_endLineMatched; 112 bool m_endLineMatched;
113 bool m_checkForFloatsFromLastLine;
109 // Used as a performance optimization to avoid doing a full paint invalidati on when our floats 114 // Used as a performance optimization to avoid doing a full paint invalidati on when our floats
110 // change but we don't have any inline children. 115 // change but we don't have any inline children.
111 bool m_hasInlineChild; 116 bool m_hasInlineChild;
112 117
113 bool m_isFullLayout; 118 bool m_isFullLayout;
114 119
115 bool m_containsBRWithClear; 120 bool m_containsBRWithClear;
116 121
117 // FIXME: Should this be a range object instead of two ints? 122 // FIXME: Should this be a range object instead of two ints?
118 LayoutUnit& m_paintInvalidationLogicalTop; 123 LayoutUnit& m_paintInvalidationLogicalTop;
119 LayoutUnit& m_paintInvalidationLogicalBottom; 124 LayoutUnit& m_paintInvalidationLogicalBottom;
120 125
121 LayoutUnit m_adjustedLogicalLineTop; 126 LayoutUnit m_adjustedLogicalLineTop;
122 127
123 bool m_usesPaintInvalidationBounds; 128 bool m_usesPaintInvalidationBounds;
124 129
125 LayoutFlowThread* m_flowThread; 130 LayoutFlowThread* m_flowThread;
126 }; 131 };
127 132
128 } 133 }
129 134
130 #endif // LineLayoutState_h 135 #endif // LineLayoutState_h
OLDNEW
« no previous file with comments | « Source/core/layout/LayoutBlockFlowLine.cpp ('k') | Source/core/layout/line/TrailingFloatsRootInlineBox.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698