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 251 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
262 static bool isBeforeAfterContentGeneratedByAncestor(RenderObject* renderer, Rend
erObject* beforeAfterContent) | 262 static bool isBeforeAfterContentGeneratedByAncestor(RenderObject* renderer, Rend
erObject* beforeAfterContent) |
263 { | 263 { |
264 while (renderer) { | 264 while (renderer) { |
265 if (renderer->generatingNode() == beforeAfterContent->generatingNode()) | 265 if (renderer->generatingNode() == beforeAfterContent->generatingNode()) |
266 return true; | 266 return true; |
267 renderer = renderer->parent(); | 267 renderer = renderer->parent(); |
268 } | 268 } |
269 return false; | 269 return false; |
270 } | 270 } |
271 | 271 |
272 RenderTable* RenderObject::createAnonymousTable() const | |
273 { | |
274 RefPtr<RenderStyle> newStyle = RenderStyle::createAnonymousStyle(style()); | |
275 newStyle->setDisplay(TABLE); | |
276 | |
277 RenderTable* table = new (renderArena()) RenderTable(document() /* is anonym
ous */); | |
278 table->setStyle(newStyle.release()); | |
279 return table; | |
280 } | |
281 | |
282 void RenderObject::addChild(RenderObject* newChild, RenderObject* beforeChild) | 272 void RenderObject::addChild(RenderObject* newChild, RenderObject* beforeChild) |
283 { | 273 { |
284 RenderObjectChildList* children = virtualChildren(); | 274 RenderObjectChildList* children = virtualChildren(); |
285 ASSERT(children); | 275 ASSERT(children); |
286 if (!children) | 276 if (!children) |
287 return; | 277 return; |
288 | 278 |
289 RenderObject* beforeContent = 0; | 279 RenderObject* beforeContent = 0; |
290 bool beforeChildHasBeforeAndAfterContent = false; | 280 bool beforeChildHasBeforeAndAfterContent = false; |
291 if (beforeChild && (beforeChild->isTable() || beforeChild->isTableSection()
|| beforeChild->isTableRow() || beforeChild->isTableCell())) { | 281 if (beforeChild && (beforeChild->isTable() || beforeChild->isTableSection()
|| beforeChild->isTableRow() || beforeChild->isTableCell())) { |
(...skipping 24 matching lines...) Expand all Loading... |
316 if (needsTable && isTableCell() && !children->firstChild() && !newChild-
>isTableCell()) | 306 if (needsTable && isTableCell() && !children->firstChild() && !newChild-
>isTableCell()) |
317 needsTable = false; | 307 needsTable = false; |
318 } | 308 } |
319 | 309 |
320 if (needsTable) { | 310 if (needsTable) { |
321 RenderTable* table; | 311 RenderTable* table; |
322 RenderObject* afterChild = beforeChild ? beforeChild->previousSibling()
: children->lastChild(); | 312 RenderObject* afterChild = beforeChild ? beforeChild->previousSibling()
: children->lastChild(); |
323 if (afterChild && afterChild->isAnonymous() && afterChild->isTable() &&
!afterChild->isBeforeContent()) | 313 if (afterChild && afterChild->isAnonymous() && afterChild->isTable() &&
!afterChild->isBeforeContent()) |
324 table = toRenderTable(afterChild); | 314 table = toRenderTable(afterChild); |
325 else { | 315 else { |
326 table = createAnonymousTable(); | 316 table = RenderTable::createAnonymousWithParentRenderer(this); |
327 addChild(table, beforeChild); | 317 addChild(table, beforeChild); |
328 } | 318 } |
329 table->addChild(newChild); | 319 table->addChild(newChild); |
330 } else { | 320 } else { |
331 // Just add it... | 321 // Just add it... |
332 children->insertChildNode(this, newChild, beforeChild); | 322 children->insertChildNode(this, newChild, beforeChild); |
333 } | 323 } |
334 | 324 |
335 if (newChild->isText() && newChild->style()->textTransform() == CAPITALIZE) | 325 if (newChild->isText() && newChild->style()->textTransform() == CAPITALIZE) |
336 toRenderText(newChild)->transformText(); | 326 toRenderText(newChild)->transformText(); |
(...skipping 2585 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2922 { | 2912 { |
2923 if (object1) { | 2913 if (object1) { |
2924 const WebCore::RenderObject* root = object1; | 2914 const WebCore::RenderObject* root = object1; |
2925 while (root->parent()) | 2915 while (root->parent()) |
2926 root = root->parent(); | 2916 root = root->parent(); |
2927 root->showRenderTreeAndMark(object1, "*", object2, "-", 0); | 2917 root->showRenderTreeAndMark(object1, "*", object2, "-", 0); |
2928 } | 2918 } |
2929 } | 2919 } |
2930 | 2920 |
2931 #endif | 2921 #endif |
OLD | NEW |