Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(194)

Side by Side Diff: Source/core/rendering/RenderInline.cpp

Issue 23628004: Tables with display:inline rendered in wrong position. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserved. 4 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserved.
5 * 5 *
6 * This library is free software; you can redistribute it and/or 6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Library General Public 7 * modify it under the terms of the GNU Library General Public
8 * License as published by the Free Software Foundation; either 8 * License as published by the Free Software Foundation; either
9 * version 2 of the License, or (at your option) any later version. 9 * version 2 of the License, or (at your option) any later version.
10 * 10 *
(...skipping 284 matching lines...) Expand 10 before | Expand all | Expand 10 after
295 return nextToLast; 295 return nextToLast;
296 return last; 296 return last;
297 } 297 }
298 298
299 void RenderInline::addChildIgnoringContinuation(RenderObject* newChild, RenderOb ject* beforeChild) 299 void RenderInline::addChildIgnoringContinuation(RenderObject* newChild, RenderOb ject* beforeChild)
300 { 300 {
301 // Make sure we don't append things after :after-generated content if we hav e it. 301 // Make sure we don't append things after :after-generated content if we hav e it.
302 if (!beforeChild && isAfterContent(lastChild())) 302 if (!beforeChild && isAfterContent(lastChild()))
303 beforeChild = lastChild(); 303 beforeChild = lastChild();
304 304
305 if (!newChild->isInline() && !newChild->isFloatingOrOutOfFlowPositioned()) { 305 if (!newChild->isInline() && !newChild->isTablePart() && !newChild->isFloati ngOrOutOfFlowPositioned()) {
306 // We are placing a block inside an inline. We have to perform a split o f this 306 // We are placing a block inside an inline. We have to perform a split o f this
307 // inline into continuations. This involves creating an anonymous block box to hold 307 // inline into continuations. This involves creating an anonymous block box to hold
308 // |newChild|. We then make that block box a continuation of this inlin e. We take all of 308 // |newChild|. We then make that block box a continuation of this inlin e. We take all of
309 // the children after |beforeChild| and put them in a clone of this obje ct. 309 // the children after |beforeChild| and put them in a clone of this obje ct.
310 RefPtr<RenderStyle> newStyle = RenderStyle::createAnonymousStyleWithDisp lay(style(), BLOCK); 310 RefPtr<RenderStyle> newStyle = RenderStyle::createAnonymousStyleWithDisp lay(style(), BLOCK);
311 311
312 // If inside an inline affected by in-flow positioning the block needs t o be affected by it too. 312 // If inside an inline affected by in-flow positioning the block needs t o be affected by it too.
313 // Giving the block a layer like this allows it to collect the x/y offse ts from inline parents later. 313 // Giving the block a layer like this allows it to collect the x/y offse ts from inline parents later.
314 if (RenderObject* positionedAncestor = inFlowPositionedInlineAncestor(th is)) 314 if (RenderObject* positionedAncestor = inFlowPositionedInlineAncestor(th is))
315 newStyle->setPosition(positionedAncestor->style()->position()); 315 newStyle->setPosition(positionedAncestor->style()->position());
(...skipping 1261 matching lines...) Expand 10 before | Expand all | Expand 10 after
1577 container = this; 1577 container = this;
1578 1578
1579 FloatPoint absPos = container->localToAbsolute(); 1579 FloatPoint absPos = container->localToAbsolute();
1580 region.bounds.setX(absPos.x() + region.bounds.x()); 1580 region.bounds.setX(absPos.x() + region.bounds.x());
1581 region.bounds.setY(absPos.y() + region.bounds.y()); 1581 region.bounds.setY(absPos.y() + region.bounds.y());
1582 1582
1583 regions.append(region); 1583 regions.append(region);
1584 } 1584 }
1585 1585
1586 } // namespace WebCore 1586 } // namespace WebCore
OLDNEW
« no previous file with comments | « LayoutTests/tables/mozilla/bugs/bug3037-1-expected.txt ('k') | Source/core/rendering/RenderTable.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698