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

Side by Side Diff: Source/core/rendering/InlineBox.h

Issue 254573006: Avoid markDirty when removing out-of-flow line boxes. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 6 years, 8 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) 2003, 2004, 2005, 2006, 2007, 2009, 2010, 2011 Apple Inc. All r ights reserved. 2 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2009, 2010, 2011 Apple Inc. All r ights reserved.
3 * 3 *
4 * This library is free software; you can redistribute it and/or 4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Library General Public 5 * modify it under the terms of the GNU Library General Public
6 * License as published by the Free Software Foundation; either 6 * License as published by the Free Software Foundation; either
7 * version 2 of the License, or (at your option) any later version. 7 * version 2 of the License, or (at your option) any later version.
8 * 8 *
9 * This library is distributed in the hope that it will be useful, 9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
(...skipping 12 matching lines...) Expand all
23 23
24 #include "core/rendering/RenderBoxModelObject.h" 24 #include "core/rendering/RenderBoxModelObject.h"
25 #include "platform/text/TextDirection.h" 25 #include "platform/text/TextDirection.h"
26 26
27 namespace WebCore { 27 namespace WebCore {
28 28
29 class HitTestRequest; 29 class HitTestRequest;
30 class HitTestResult; 30 class HitTestResult;
31 class RootInlineBox; 31 class RootInlineBox;
32 32
33 enum MarkLineBoxes { MarkLineBoxesDirty, DontMarkLineBoxes };
34
33 // InlineBox represents a rectangle that occurs on a line. It corresponds to 35 // InlineBox represents a rectangle that occurs on a line. It corresponds to
34 // some RenderObject (i.e., it represents a portion of that RenderObject). 36 // some RenderObject (i.e., it represents a portion of that RenderObject).
35 class InlineBox { 37 class InlineBox {
36 WTF_MAKE_NONCOPYABLE(InlineBox); 38 WTF_MAKE_NONCOPYABLE(InlineBox);
37 public: 39 public:
38 InlineBox(RenderObject& obj) 40 InlineBox(RenderObject& obj)
39 : m_next(0) 41 : m_next(0)
40 , m_prev(0) 42 , m_prev(0)
41 , m_parent(0) 43 , m_parent(0)
42 , m_renderer(obj) 44 , m_renderer(obj)
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
140 } 142 }
141 143
142 bool isConstructed() { return m_bitfields.constructed(); } 144 bool isConstructed() { return m_bitfields.constructed(); }
143 virtual void setConstructed() { m_bitfields.setConstructed(true); } 145 virtual void setConstructed() { m_bitfields.setConstructed(true); }
144 146
145 void setExtracted(bool extracted = true) { m_bitfields.setExtracted(extracte d); } 147 void setExtracted(bool extracted = true) { m_bitfields.setExtracted(extracte d); }
146 148
147 void setFirstLineStyleBit(bool firstLine) { m_bitfields.setFirstLine(firstLi ne); } 149 void setFirstLineStyleBit(bool firstLine) { m_bitfields.setFirstLine(firstLi ne); }
148 bool isFirstLineStyle() const { return m_bitfields.firstLine(); } 150 bool isFirstLineStyle() const { return m_bitfields.firstLine(); }
149 151
150 void remove(); 152 void remove(MarkLineBoxes = MarkLineBoxesDirty);
151 153
152 InlineBox* nextOnLine() const { return m_next; } 154 InlineBox* nextOnLine() const { return m_next; }
153 InlineBox* prevOnLine() const { return m_prev; } 155 InlineBox* prevOnLine() const { return m_prev; }
154 void setNextOnLine(InlineBox* next) 156 void setNextOnLine(InlineBox* next)
155 { 157 {
156 ASSERT(m_parent || !next); 158 ASSERT(m_parent || !next);
157 m_next = next; 159 m_next = next;
158 } 160 }
159 void setPrevOnLine(InlineBox* prev) 161 void setPrevOnLine(InlineBox* prev)
160 { 162 {
(...skipping 282 matching lines...) Expand 10 before | Expand all | Expand 10 after
443 445
444 } // namespace WebCore 446 } // namespace WebCore
445 447
446 #ifndef NDEBUG 448 #ifndef NDEBUG
447 // Outside the WebCore namespace for ease of invocation from gdb. 449 // Outside the WebCore namespace for ease of invocation from gdb.
448 void showTree(const WebCore::InlineBox*); 450 void showTree(const WebCore::InlineBox*);
449 void showLineTree(const WebCore::InlineBox*); 451 void showLineTree(const WebCore::InlineBox*);
450 #endif 452 #endif
451 453
452 #endif // InlineBox_h 454 #endif // InlineBox_h
OLDNEW
« no previous file with comments | « LayoutTests/fast/dynamic/static-to-relative-with-absolute-child-expected.html ('k') | Source/core/rendering/InlineBox.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698