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) 2007 David Smith (catfish.man@gmail.com) | 4 * (C) 2007 David Smith (catfish.man@gmail.com) |
5 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc.
All rights reserved. | 5 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc.
All rights reserved. |
6 * Copyright (C) Research In Motion Limited 2010. All rights reserved. | 6 * Copyright (C) Research In Motion Limited 2010. All rights reserved. |
7 * | 7 * |
8 * This library is free software; you can redistribute it and/or | 8 * This library is free software; you can redistribute it and/or |
9 * modify it under the terms of the GNU Library General Public | 9 * modify it under the terms of the GNU Library General Public |
10 * License as published by the Free Software Foundation; either | 10 * License as published by the Free Software Foundation; either |
(...skipping 222 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
233 RenderStyle* FirstLetterPseudoElement::styleForFirstLetter(RenderObject* rendere
rContainer) | 233 RenderStyle* FirstLetterPseudoElement::styleForFirstLetter(RenderObject* rendere
rContainer) |
234 { | 234 { |
235 ASSERT(rendererContainer); | 235 ASSERT(rendererContainer); |
236 | 236 |
237 RenderObject* styleContainer = parentOrShadowHostElement()->renderer(); | 237 RenderObject* styleContainer = parentOrShadowHostElement()->renderer(); |
238 ASSERT(styleContainer); | 238 ASSERT(styleContainer); |
239 | 239 |
240 // We always force the pseudo style to recompute as the first-letter style | 240 // We always force the pseudo style to recompute as the first-letter style |
241 // computed by the style container may not have taken the renderers styles | 241 // computed by the style container may not have taken the renderers styles |
242 // into account. | 242 // into account. |
243 styleContainer->style()->removeCachedPseudoStyle(FIRST_LETTER); | 243 styleContainer->deprecatedMutableStyle()->removeCachedPseudoStyle(FIRST_LETT
ER); |
244 | 244 |
245 RenderStyle* pseudoStyle = styleContainer->getCachedPseudoStyle(FIRST_LETTER
, rendererContainer->firstLineStyle()); | 245 RenderStyle* pseudoStyle = styleContainer->getCachedPseudoStyle(FIRST_LETTER
, rendererContainer->firstLineStyle()); |
246 ASSERT(pseudoStyle); | 246 ASSERT(pseudoStyle); |
247 | 247 |
248 return pseudoStyle; | 248 return pseudoStyle; |
249 } | 249 } |
250 | 250 |
251 void FirstLetterPseudoElement::attachFirstLetterTextRenderers() | 251 void FirstLetterPseudoElement::attachFirstLetterTextRenderers() |
252 { | 252 { |
253 RenderObject* nextRenderer = FirstLetterPseudoElement::firstLetterTextRender
er(*this); | 253 RenderObject* nextRenderer = FirstLetterPseudoElement::firstLetterTextRender
er(*this); |
(...skipping 11 matching lines...) Expand all Loading... |
265 | 265 |
266 // FIXME: This would already have been calculated in firstLetterRenderer. Ca
n we pass the length through? | 266 // FIXME: This would already have been calculated in firstLetterRenderer. Ca
n we pass the length through? |
267 unsigned length = FirstLetterPseudoElement::firstLetterLength(oldText); | 267 unsigned length = FirstLetterPseudoElement::firstLetterLength(oldText); |
268 | 268 |
269 // Construct a text fragment for the text after the first letter. | 269 // Construct a text fragment for the text after the first letter. |
270 // This text fragment might be empty. | 270 // This text fragment might be empty. |
271 RenderTextFragment* remainingText = | 271 RenderTextFragment* remainingText = |
272 new RenderTextFragment(nextRenderer->node() ? nextRenderer->node() : &ne
xtRenderer->document(), oldText.impl(), length, oldText.length() - length); | 272 new RenderTextFragment(nextRenderer->node() ? nextRenderer->node() : &ne
xtRenderer->document(), oldText.impl(), length, oldText.length() - length); |
273 remainingText->setFirstLetterPseudoElement(this); | 273 remainingText->setFirstLetterPseudoElement(this); |
274 remainingText->setIsRemainingTextRenderer(true); | 274 remainingText->setIsRemainingTextRenderer(true); |
275 remainingText->setStyle(nextRenderer->style()); | 275 remainingText->setStyle(nextRenderer->deprecatedMutableStyle()); |
276 | 276 |
277 if (remainingText->node()) | 277 if (remainingText->node()) |
278 remainingText->node()->setRenderer(remainingText); | 278 remainingText->node()->setRenderer(remainingText); |
279 | 279 |
280 m_remainingTextRenderer = remainingText; | 280 m_remainingTextRenderer = remainingText; |
281 | 281 |
282 RenderObject* nextSibling = renderer()->nextSibling(); | 282 RenderObject* nextSibling = renderer()->nextSibling(); |
283 renderer()->parent()->addChild(remainingText, nextSibling); | 283 renderer()->parent()->addChild(remainingText, nextSibling); |
284 | 284 |
285 // Construct text fragment for the first letter. | 285 // Construct text fragment for the first letter. |
(...skipping 19 matching lines...) Expand all Loading... |
305 if (child->style()->styleType() == FIRST_LETTER && m_remainingTextRender
er) { | 305 if (child->style()->styleType() == FIRST_LETTER && m_remainingTextRender
er) { |
306 if (RenderStyle* pseudoStyle = styleForFirstLetter(m_remainingTextRe
nderer->parent())) | 306 if (RenderStyle* pseudoStyle = styleForFirstLetter(m_remainingTextRe
nderer->parent())) |
307 child->setPseudoStyle(pseudoStyle); | 307 child->setPseudoStyle(pseudoStyle); |
308 continue; | 308 continue; |
309 } | 309 } |
310 | 310 |
311 // We only manage the style for the generated content items. | 311 // We only manage the style for the generated content items. |
312 if (!child->isText() && !child->isQuote() && !child->isImage()) | 312 if (!child->isText() && !child->isQuote() && !child->isImage()) |
313 continue; | 313 continue; |
314 | 314 |
315 child->setPseudoStyle(renderer->style()); | 315 child->setPseudoStyle(renderer->deprecatedMutableStyle()); |
316 } | 316 } |
317 } | 317 } |
318 | 318 |
319 } // namespace blink | 319 } // namespace blink |
OLD | NEW |