| 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) 2000 Dirk Mueller (mueller@kde.org) | 4 * (C) 2000 Dirk Mueller (mueller@kde.org) |
| 5 * (C) 2004 Allan Sandfeld Jensen (kde@carewolf.com) | 5 * (C) 2004 Allan Sandfeld Jensen (kde@carewolf.com) |
| 6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2011 Apple Inc. All rights reserv
ed. | 6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2011 Apple Inc. All rights reserv
ed. |
| 7 * Copyright (C) 2009 Google Inc. All rights reserved. | 7 * Copyright (C) 2009 Google Inc. All rights reserved. |
| 8 * Copyright (C) 2009 Torch Mobile Inc. All rights reserved. (http://www.torchmo
bile.com/) | 8 * Copyright (C) 2009 Torch Mobile Inc. All rights reserved. (http://www.torchmo
bile.com/) |
| 9 * | 9 * |
| 10 * This library is free software; you can redistribute it and/or | 10 * This library is free software; you can redistribute it and/or |
| (...skipping 265 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 276 static bool isBeforeAfterContentGeneratedByAncestor(RenderObject* renderer, Rend
erObject* beforeAfterContent) | 276 static bool isBeforeAfterContentGeneratedByAncestor(RenderObject* renderer, Rend
erObject* beforeAfterContent) |
| 277 { | 277 { |
| 278 while (renderer) { | 278 while (renderer) { |
| 279 if (renderer->generatingNode() == beforeAfterContent->generatingNode()) | 279 if (renderer->generatingNode() == beforeAfterContent->generatingNode()) |
| 280 return true; | 280 return true; |
| 281 renderer = renderer->parent(); | 281 renderer = renderer->parent(); |
| 282 } | 282 } |
| 283 return false; | 283 return false; |
| 284 } | 284 } |
| 285 | 285 |
| 286 RenderTable* RenderObject::createAnonymousTable() const |
| 287 { |
| 288 RefPtr<RenderStyle> newStyle = RenderStyle::createAnonymousStyle(style()); |
| 289 newStyle->setDisplay(TABLE); |
| 290 |
| 291 RenderTable* table = new (renderArena()) RenderTable(document() /* is anonym
ous */); |
| 292 table->setStyle(newStyle.release()); |
| 293 return table; |
| 294 } |
| 295 |
| 286 void RenderObject::addChild(RenderObject* newChild, RenderObject* beforeChild) | 296 void RenderObject::addChild(RenderObject* newChild, RenderObject* beforeChild) |
| 287 { | 297 { |
| 288 RenderObjectChildList* children = virtualChildren(); | 298 RenderObjectChildList* children = virtualChildren(); |
| 289 ASSERT(children); | 299 ASSERT(children); |
| 290 if (!children) | 300 if (!children) |
| 291 return; | 301 return; |
| 292 | 302 |
| 293 RenderObject* beforeContent = 0; | 303 RenderObject* beforeContent = 0; |
| 294 bool beforeChildHasBeforeAndAfterContent = false; | 304 bool beforeChildHasBeforeAndAfterContent = false; |
| 295 if (beforeChild && (beforeChild->isTable() || beforeChild->isTableSection()
|| beforeChild->isTableRow() || beforeChild->isTableCell())) { | 305 if (beforeChild && (beforeChild->isTable() || beforeChild->isTableSection()
|| beforeChild->isTableRow() || beforeChild->isTableCell())) { |
| (...skipping 24 matching lines...) Expand all Loading... |
| 320 if (needsTable && isTableCell() && !children->firstChild() && !newChild-
>isTableCell()) | 330 if (needsTable && isTableCell() && !children->firstChild() && !newChild-
>isTableCell()) |
| 321 needsTable = false; | 331 needsTable = false; |
| 322 } | 332 } |
| 323 | 333 |
| 324 if (needsTable) { | 334 if (needsTable) { |
| 325 RenderTable* table; | 335 RenderTable* table; |
| 326 RenderObject* afterChild = beforeChild ? beforeChild->previousSibling()
: children->lastChild(); | 336 RenderObject* afterChild = beforeChild ? beforeChild->previousSibling()
: children->lastChild(); |
| 327 if (afterChild && afterChild->isAnonymous() && afterChild->isTable() &&
!afterChild->isBeforeContent()) | 337 if (afterChild && afterChild->isAnonymous() && afterChild->isTable() &&
!afterChild->isBeforeContent()) |
| 328 table = toRenderTable(afterChild); | 338 table = toRenderTable(afterChild); |
| 329 else { | 339 else { |
| 330 table = new (renderArena()) RenderTable(document() /* is anonymous *
/); | 340 table = createAnonymousTable(); |
| 331 RefPtr<RenderStyle> newStyle = RenderStyle::create(); | |
| 332 newStyle->inheritFrom(style()); | |
| 333 newStyle->setDisplay(TABLE); | |
| 334 table->setStyle(newStyle.release()); | |
| 335 addChild(table, beforeChild); | 341 addChild(table, beforeChild); |
| 336 } | 342 } |
| 337 table->addChild(newChild); | 343 table->addChild(newChild); |
| 338 } else { | 344 } else { |
| 339 // Just add it... | 345 // Just add it... |
| 340 children->insertChildNode(this, newChild, beforeChild); | 346 children->insertChildNode(this, newChild, beforeChild); |
| 341 } | 347 } |
| 342 | 348 |
| 343 if (newChild->isText() && newChild->style()->textTransform() == CAPITALIZE)
{ | 349 if (newChild->isText() && newChild->style()->textTransform() == CAPITALIZE)
{ |
| 344 RefPtr<StringImpl> textToTransform = toRenderText(newChild)->originalTex
t(); | 350 RefPtr<StringImpl> textToTransform = toRenderText(newChild)->originalTex
t(); |
| (...skipping 2476 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2821 { | 2827 { |
| 2822 if (object1) { | 2828 if (object1) { |
| 2823 const WebCore::RenderObject* root = object1; | 2829 const WebCore::RenderObject* root = object1; |
| 2824 while (root->parent()) | 2830 while (root->parent()) |
| 2825 root = root->parent(); | 2831 root = root->parent(); |
| 2826 root->showRenderTreeAndMark(object1, "*", object2, "-", 0); | 2832 root->showRenderTreeAndMark(object1, "*", object2, "-", 0); |
| 2827 } | 2833 } |
| 2828 } | 2834 } |
| 2829 | 2835 |
| 2830 #endif | 2836 #endif |
| OLD | NEW |