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 303 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
314 if (!m_context.parentRenderer()->isChildAllowed(newRenderer, m_context.style
())) { | 314 if (!m_context.parentRenderer()->isChildAllowed(newRenderer, m_context.style
())) { |
315 newRenderer->destroy(); | 315 newRenderer->destroy(); |
316 return 0; | 316 return 0; |
317 } | 317 } |
318 | 318 |
319 node->setRenderer(newRenderer); | 319 node->setRenderer(newRenderer); |
320 newRenderer->setAnimatableStyle(m_context.releaseStyle()); // setAnimatableS
tyle() can depend on renderer() already being set. | 320 newRenderer->setAnimatableStyle(m_context.releaseStyle()); // setAnimatableS
tyle() can depend on renderer() already being set. |
321 return newRenderer; | 321 return newRenderer; |
322 } | 322 } |
323 | 323 |
324 #if ENABLE(FULLSCREEN_API) | |
325 static RenderObject* wrapWithRenderFullScreen(RenderObject* object, Document* do
cument) | |
326 { | |
327 RenderFullScreen* fullscreenRenderer = new (document->renderArena()) RenderF
ullScreen(document); | |
328 fullscreenRenderer->setStyle(RenderFullScreen::createFullScreenStyle()); | |
329 // It's possible that we failed to create the new render and end up wrapping
nothing. | |
330 // We'll end up displaying a black screen, but Jer says this is expected. | |
331 if (object) | |
332 fullscreenRenderer->addChild(object); | |
333 document->setFullScreenRenderer(fullscreenRenderer); | |
334 if (fullscreenRenderer->placeholder()) | |
335 return fullscreenRenderer->placeholder(); | |
336 return fullscreenRenderer; | |
337 } | |
338 #endif | |
339 | |
340 void NodeRendererFactory::createRendererIfNeeded() | 324 void NodeRendererFactory::createRendererIfNeeded() |
341 { | 325 { |
342 Node* node = m_context.node(); | 326 Node* node = m_context.node(); |
343 Document* document = node->document(); | 327 Document* document = node->document(); |
344 if (!document->shouldCreateRenderers()) | 328 if (!document->shouldCreateRenderers()) |
345 return; | 329 return; |
346 | 330 |
347 RenderObject* parentRenderer = m_context.parentRenderer(); | 331 RenderObject* parentRenderer = m_context.parentRenderer(); |
348 RenderObject* nextRenderer = m_context.nextRenderer(); | 332 RenderObject* nextRenderer = m_context.nextRenderer(); |
349 RenderObject* newRenderer = createRendererAndStyle(); | 333 RenderObject* newRenderer = createRendererAndStyle(); |
350 | 334 |
351 if (m_context.hasFlowThreadParent()) { | 335 if (m_context.hasFlowThreadParent()) { |
352 parentRenderer = m_context.parentFlowRenderer(); | 336 parentRenderer = m_context.parentFlowRenderer(); |
353 // Do not call m_context.nextRenderer() here, because it expects to have
| 337 // Do not call m_context.nextRenderer() here, because it expects to have
|
354 // the renderer added to its parent already. | 338 // the renderer added to its parent already. |
355 nextRenderer = m_context.parentFlowRenderer()->nextRendererForNode(node)
; | 339 nextRenderer = m_context.parentFlowRenderer()->nextRendererForNode(node)
; |
356 } | 340 } |
357 | 341 |
358 #if ENABLE(FULLSCREEN_API) | 342 #if ENABLE(FULLSCREEN_API) |
359 if (document->webkitIsFullScreen() && document->webkitCurrentFullScreenEleme
nt() == node) | 343 if (document->webkitIsFullScreen() && document->webkitCurrentFullScreenEleme
nt() == node) |
360 newRenderer = wrapWithRenderFullScreen(newRenderer, document); | 344 newRenderer = RenderFullScreen::wrapRenderer(newRenderer, document); |
361 #endif | 345 #endif |
362 | 346 |
363 // FIXME: This side effect should be visible from attach() code. | 347 // FIXME: This side effect should be visible from attach() code. |
364 m_context.hostChildrenChanged(); | 348 m_context.hostChildrenChanged(); |
365 | 349 |
366 if (!newRenderer) | 350 if (!newRenderer) |
367 return; | 351 return; |
368 | 352 |
369 // Note: Adding newRenderer instead of renderer(). renderer() may be a child
of newRenderer. | 353 // Note: Adding newRenderer instead of renderer(). renderer() may be a child
of newRenderer. |
370 parentRenderer->addChild(newRenderer, nextRenderer); | 354 parentRenderer->addChild(newRenderer, nextRenderer); |
371 } | 355 } |
372 | 356 |
373 } | 357 } |
OLD | NEW |