| 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 248 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 259 static bool isBeforeAfterContentGeneratedByAncestor(RenderObject* renderer, Rend
erObject* beforeAfterContent) | 259 static bool isBeforeAfterContentGeneratedByAncestor(RenderObject* renderer, Rend
erObject* beforeAfterContent) |
| 260 { | 260 { |
| 261 while (renderer) { | 261 while (renderer) { |
| 262 if (renderer->generatingNode() == beforeAfterContent->generatingNode()) | 262 if (renderer->generatingNode() == beforeAfterContent->generatingNode()) |
| 263 return true; | 263 return true; |
| 264 renderer = renderer->parent(); | 264 renderer = renderer->parent(); |
| 265 } | 265 } |
| 266 return false; | 266 return false; |
| 267 } | 267 } |
| 268 | 268 |
| 269 RenderTable* RenderObject::createAnonymousTable() const |
| 270 { |
| 271 RefPtr<RenderStyle> newStyle = RenderStyle::createAnonymousStyle(style()); |
| 272 newStyle->setDisplay(TABLE); |
| 273 |
| 274 RenderTable* table = new (renderArena()) RenderTable(document() /* is anonym
ous */); |
| 275 table->setStyle(newStyle.release()); |
| 276 return table; |
| 277 } |
| 278 |
| 269 void RenderObject::addChild(RenderObject* newChild, RenderObject* beforeChild) | 279 void RenderObject::addChild(RenderObject* newChild, RenderObject* beforeChild) |
| 270 { | 280 { |
| 271 RenderObjectChildList* children = virtualChildren(); | 281 RenderObjectChildList* children = virtualChildren(); |
| 272 ASSERT(children); | 282 ASSERT(children); |
| 273 if (!children) | 283 if (!children) |
| 274 return; | 284 return; |
| 275 | 285 |
| 276 RenderObject* beforeContent = 0; | 286 RenderObject* beforeContent = 0; |
| 277 bool beforeChildHasBeforeAndAfterContent = false; | 287 bool beforeChildHasBeforeAndAfterContent = false; |
| 278 if (beforeChild && (beforeChild->isTable() || beforeChild->isTableSection()
|| beforeChild->isTableRow() || beforeChild->isTableCell())) { | 288 if (beforeChild && (beforeChild->isTable() || beforeChild->isTableSection()
|| beforeChild->isTableRow() || beforeChild->isTableCell())) { |
| (...skipping 24 matching lines...) Expand all Loading... |
| 303 if (needsTable && isTableCell() && !children->firstChild() && !newChild-
>isTableCell()) | 313 if (needsTable && isTableCell() && !children->firstChild() && !newChild-
>isTableCell()) |
| 304 needsTable = false; | 314 needsTable = false; |
| 305 } | 315 } |
| 306 | 316 |
| 307 if (needsTable) { | 317 if (needsTable) { |
| 308 RenderTable* table; | 318 RenderTable* table; |
| 309 RenderObject* afterChild = beforeChild ? beforeChild->previousSibling()
: children->lastChild(); | 319 RenderObject* afterChild = beforeChild ? beforeChild->previousSibling()
: children->lastChild(); |
| 310 if (afterChild && afterChild->isAnonymous() && afterChild->isTable() &&
!afterChild->isBeforeContent()) | 320 if (afterChild && afterChild->isAnonymous() && afterChild->isTable() &&
!afterChild->isBeforeContent()) |
| 311 table = toRenderTable(afterChild); | 321 table = toRenderTable(afterChild); |
| 312 else { | 322 else { |
| 313 table = new (renderArena()) RenderTable(document() /* is anonymous *
/); | 323 table = createAnonymousTable(); |
| 314 RefPtr<RenderStyle> newStyle = RenderStyle::create(); | |
| 315 newStyle->inheritFrom(style()); | |
| 316 newStyle->setDisplay(TABLE); | |
| 317 table->setStyle(newStyle.release()); | |
| 318 addChild(table, beforeChild); | 324 addChild(table, beforeChild); |
| 319 } | 325 } |
| 320 table->addChild(newChild); | 326 table->addChild(newChild); |
| 321 } else { | 327 } else { |
| 322 // Just add it... | 328 // Just add it... |
| 323 children->insertChildNode(this, newChild, beforeChild); | 329 children->insertChildNode(this, newChild, beforeChild); |
| 324 } | 330 } |
| 325 | 331 |
| 326 if (newChild->isText() && newChild->style()->textTransform() == CAPITALIZE)
{ | 332 if (newChild->isText() && newChild->style()->textTransform() == CAPITALIZE)
{ |
| 327 RefPtr<StringImpl> textToTransform = toRenderText(newChild)->originalTex
t(); | 333 RefPtr<StringImpl> textToTransform = toRenderText(newChild)->originalTex
t(); |
| (...skipping 2492 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2820 { | 2826 { |
| 2821 if (object1) { | 2827 if (object1) { |
| 2822 const WebCore::RenderObject* root = object1; | 2828 const WebCore::RenderObject* root = object1; |
| 2823 while (root->parent()) | 2829 while (root->parent()) |
| 2824 root = root->parent(); | 2830 root = root->parent(); |
| 2825 root->showRenderTreeAndMark(object1, "*", object2, "-", 0); | 2831 root->showRenderTreeAndMark(object1, "*", object2, "-", 0); |
| 2826 } | 2832 } |
| 2827 } | 2833 } |
| 2828 | 2834 |
| 2829 #endif | 2835 #endif |
| OLD | NEW |