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) 2001 Dirk Mueller (mueller@kde.org) | 4 * (C) 2001 Dirk Mueller (mueller@kde.org) |
5 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All r
ights reserved. | 5 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All r
ights reserved. |
6 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.t
orchmobile.com/) | 6 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.t
orchmobile.com/) |
7 * Copyright (C) 2011 Google Inc. All rights reserved. | 7 * Copyright (C) 2011 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 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
113 return m_node->document().renderView(); | 113 return m_node->document().renderView(); |
114 } | 114 } |
115 | 115 |
116 return RenderTreeBuilder::parentRenderer(); | 116 return RenderTreeBuilder::parentRenderer(); |
117 } | 117 } |
118 | 118 |
119 void RenderTreeBuilderForElement::createRenderer() | 119 void RenderTreeBuilderForElement::createRenderer() |
120 { | 120 { |
121 ASSERT(rendererIsNeeded()); | 121 ASSERT(rendererIsNeeded()); |
122 ASSERT(!m_node->renderer()); | 122 ASSERT(!m_node->renderer()); |
| 123 ASSERT(m_node->needsAttach()); |
123 | 124 |
124 Element* element = toElement(m_node); | 125 Element* element = toElement(m_node); |
125 RenderStyle& style = *m_style.get(); | 126 RenderStyle& style = *m_style.get(); |
126 | 127 |
127 RenderObject* newRenderer = element->createRenderer(&style); | 128 RenderObject* newRenderer = element->createRenderer(&style); |
128 if (!newRenderer) | 129 if (!newRenderer) |
129 return; | 130 return; |
130 | 131 |
131 RenderObject* parentRenderer = this->parentRenderer(); | 132 RenderObject* parentRenderer = this->parentRenderer(); |
132 | 133 |
(...skipping 25 matching lines...) Expand all Loading... |
158 if (!RenderTreeBuilder::rendererIsNeeded()) | 159 if (!RenderTreeBuilder::rendererIsNeeded()) |
159 return false; | 160 return false; |
160 | 161 |
161 return toText(m_node)->textRendererIsNeeded(*parentRenderer()->style(), *par
entRenderer()); | 162 return toText(m_node)->textRendererIsNeeded(*parentRenderer()->style(), *par
entRenderer()); |
162 } | 163 } |
163 | 164 |
164 void RenderTreeBuilderForText::createRenderer() | 165 void RenderTreeBuilderForText::createRenderer() |
165 { | 166 { |
166 ASSERT(rendererIsNeeded()); | 167 ASSERT(rendererIsNeeded()); |
167 ASSERT(!m_node->renderer()); | 168 ASSERT(!m_node->renderer()); |
| 169 ASSERT(m_node->needsAttach()); |
168 | 170 |
169 Text* textNode = toText(m_node); | 171 Text* textNode = toText(m_node); |
170 RenderObject* parentRenderer = this->parentRenderer(); | 172 RenderObject* parentRenderer = this->parentRenderer(); |
171 RenderStyle* style = parentRenderer->style(); | 173 RenderStyle* style = parentRenderer->style(); |
172 | 174 |
173 RenderText* newRenderer = textNode->createTextRenderer(style); | 175 RenderText* newRenderer = textNode->createTextRenderer(style); |
174 if (!parentRenderer->isChildAllowed(newRenderer, style)) { | 176 if (!parentRenderer->isChildAllowed(newRenderer, style)) { |
175 newRenderer->destroy(); | 177 newRenderer->destroy(); |
176 return; | 178 return; |
177 } | 179 } |
178 | 180 |
179 // Make sure the RenderObject already knows it is going to be added to a Ren
derFlowThread before we set the style | 181 // Make sure the RenderObject already knows it is going to be added to a Ren
derFlowThread before we set the style |
180 // for the first time. Otherwise code using inRenderFlowThread() in the styl
eWillChange and styleDidChange will fail. | 182 // for the first time. Otherwise code using inRenderFlowThread() in the styl
eWillChange and styleDidChange will fail. |
181 newRenderer->setFlowThreadState(parentRenderer->flowThreadState()); | 183 newRenderer->setFlowThreadState(parentRenderer->flowThreadState()); |
182 | 184 |
183 RenderObject* nextRenderer = this->nextRenderer(); | 185 RenderObject* nextRenderer = this->nextRenderer(); |
184 textNode->setRenderer(newRenderer); | 186 textNode->setRenderer(newRenderer); |
185 // Parent takes care of the animations, no need to call setAnimatableStyle. | 187 // Parent takes care of the animations, no need to call setAnimatableStyle. |
186 newRenderer->setStyle(style); | 188 newRenderer->setStyle(style); |
187 parentRenderer->addChild(newRenderer, nextRenderer); | 189 parentRenderer->addChild(newRenderer, nextRenderer); |
188 } | 190 } |
189 | 191 |
190 } | 192 } |
OLD | NEW |