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 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights
reserved. | 4 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights
reserved. |
5 * | 5 * |
6 * This library is free software; you can redistribute it and/or | 6 * This library is free software; you can redistribute it and/or |
7 * modify it under the terms of the GNU Library General Public | 7 * modify it under the terms of the GNU Library General Public |
8 * License as published by the Free Software Foundation; either | 8 * License as published by the Free Software Foundation; either |
9 * version 2 of the License, or (at your option) any later version. | 9 * version 2 of the License, or (at your option) any later version. |
10 * | 10 * |
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
142 { | 142 { |
143 return new RenderText(this, dataImpl()); | 143 return new RenderText(this, dataImpl()); |
144 } | 144 } |
145 | 145 |
146 void Text::attach(const AttachContext& context) | 146 void Text::attach(const AttachContext& context) |
147 { | 147 { |
148 RenderTreeBuilder(this, context.resolvedStyle).createRendererForTextIfNeeded
(); | 148 RenderTreeBuilder(this, context.resolvedStyle).createRendererForTextIfNeeded
(); |
149 CharacterData::attach(context); | 149 CharacterData::attach(context); |
150 } | 150 } |
151 | 151 |
152 void Text::recalcTextStyle(StyleRecalcChange change, Text* nextTextSibling) | 152 void Text::recalcTextStyle(StyleRecalcChange change) |
153 { | 153 { |
154 if (RenderText* renderer = this->renderer()) { | 154 if (RenderText* renderer = this->renderer()) { |
155 if (change != NoChange || needsStyleRecalc()) | 155 if (change != NoChange || needsStyleRecalc()) |
156 renderer->setStyle(document().styleResolver().styleForText(this)); | 156 renderer->setStyle(document().styleResolver().styleForText(this)); |
157 if (needsStyleRecalc()) | 157 if (needsStyleRecalc()) |
158 renderer->setText(dataImpl()); | 158 renderer->setText(dataImpl()); |
159 clearNeedsStyleRecalc(); | 159 clearNeedsStyleRecalc(); |
160 } else if (needsStyleRecalc() || needsWhitespaceRenderer()) { | 160 } else if (needsStyleRecalc() || needsWhitespaceRenderer()) { |
161 reattach(); | 161 reattach(); |
162 if (this->renderer()) | |
163 reattachWhitespaceSiblings(nextTextSibling); | |
164 } | 162 } |
165 } | 163 } |
166 | 164 |
167 // If a whitespace node had no renderer and goes through a recalcStyle it may | 165 // If a whitespace node had no renderer and goes through a recalcStyle it may |
168 // need to create one if the parent style now has white-space: pre. | 166 // need to create one if the parent style now has white-space: pre. |
169 bool Text::needsWhitespaceRenderer() | 167 bool Text::needsWhitespaceRenderer() |
170 { | 168 { |
171 ASSERT(!renderer()); | 169 ASSERT(!renderer()); |
172 if (RenderStyle* style = parentRenderStyle()) | 170 if (RenderStyle* style = parentRenderStyle()) |
173 return style->preserveNewline(); | 171 return style->preserveNewline(); |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
208 result.appendLiteral("; "); | 206 result.appendLiteral("; "); |
209 result.appendLiteral("value="); | 207 result.appendLiteral("value="); |
210 result.append(s); | 208 result.append(s); |
211 } | 209 } |
212 | 210 |
213 strncpy(buffer, result.toString().utf8().data(), length - 1); | 211 strncpy(buffer, result.toString().utf8().data(), length - 1); |
214 } | 212 } |
215 #endif | 213 #endif |
216 | 214 |
217 } // namespace blink | 215 } // namespace blink |
OLD | NEW |