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

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

Issue 295513003: add 'slow' prefix to RenderObject's firstChild() / lastChild() methods (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 7 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 | Annotate | Revision Log
« no previous file with comments | « Source/core/rendering/RenderBoxModelObject.cpp ('k') | Source/core/rendering/RenderLayer.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 262 matching lines...) Expand 10 before | Expand all | Expand 10 after
273 RenderBoxModelObject* RenderInline::continuationBefore(RenderObject* beforeChild ) 273 RenderBoxModelObject* RenderInline::continuationBefore(RenderObject* beforeChild )
274 { 274 {
275 if (beforeChild && beforeChild->parent() == this) 275 if (beforeChild && beforeChild->parent() == this)
276 return this; 276 return this;
277 277
278 RenderBoxModelObject* curr = nextContinuation(this); 278 RenderBoxModelObject* curr = nextContinuation(this);
279 RenderBoxModelObject* nextToLast = this; 279 RenderBoxModelObject* nextToLast = this;
280 RenderBoxModelObject* last = this; 280 RenderBoxModelObject* last = this;
281 while (curr) { 281 while (curr) {
282 if (beforeChild && beforeChild->parent() == curr) { 282 if (beforeChild && beforeChild->parent() == curr) {
283 if (curr->firstChild() == beforeChild) 283 if (curr->slowFirstChild() == beforeChild)
284 return last; 284 return last;
285 return curr; 285 return curr;
286 } 286 }
287 287
288 nextToLast = last; 288 nextToLast = last;
289 last = curr; 289 last = curr;
290 curr = nextContinuation(curr); 290 curr = nextContinuation(curr);
291 } 291 }
292 292
293 if (!beforeChild && !last->firstChild()) 293 if (!beforeChild && !last->slowFirstChild())
294 return nextToLast; 294 return nextToLast;
295 return last; 295 return last;
296 } 296 }
297 297
298 void RenderInline::addChildIgnoringContinuation(RenderObject* newChild, RenderOb ject* beforeChild) 298 void RenderInline::addChildIgnoringContinuation(RenderObject* newChild, RenderOb ject* beforeChild)
299 { 299 {
300 // Make sure we don't append things after :after-generated content if we hav e it. 300 // Make sure we don't append things after :after-generated content if we hav e it.
301 if (!beforeChild && isAfterContent(lastChild())) 301 if (!beforeChild && isAfterContent(lastChild()))
302 beforeChild = lastChild(); 302 beforeChild = lastChild();
303 303
(...skipping 501 matching lines...) Expand 10 before | Expand all | Expand 10 after
805 // This inline actually has a line box. We must have clicked in the bor der/padding of one of these boxes. We 805 // This inline actually has a line box. We must have clicked in the bor der/padding of one of these boxes. We
806 // should try to find a result by asking our containing block. 806 // should try to find a result by asking our containing block.
807 return cb->positionForPoint(point); 807 return cb->positionForPoint(point);
808 } 808 }
809 809
810 // Translate the coords from the pre-anonymous block to the post-anonymous b lock. 810 // Translate the coords from the pre-anonymous block to the post-anonymous b lock.
811 LayoutPoint parentBlockPoint = cb->location() + point; 811 LayoutPoint parentBlockPoint = cb->location() + point;
812 RenderBoxModelObject* c = continuation(); 812 RenderBoxModelObject* c = continuation();
813 while (c) { 813 while (c) {
814 RenderBox* contBlock = c->isInline() ? c->containingBlock() : toRenderBl ock(c); 814 RenderBox* contBlock = c->isInline() ? c->containingBlock() : toRenderBl ock(c);
815 if (c->isInline() || c->firstChild()) 815 if (c->isInline() || c->slowFirstChild())
816 return c->positionForPoint(parentBlockPoint - contBlock->locationOff set()); 816 return c->positionForPoint(parentBlockPoint - contBlock->locationOff set());
817 c = toRenderBlock(c)->inlineElementContinuation(); 817 c = toRenderBlock(c)->inlineElementContinuation();
818 } 818 }
819 819
820 return RenderBoxModelObject::positionForPoint(point); 820 return RenderBoxModelObject::positionForPoint(point);
821 } 821 }
822 822
823 namespace { 823 namespace {
824 824
825 class LinesBoundingBoxGeneratorContext { 825 class LinesBoundingBoxGeneratorContext {
(...skipping 747 matching lines...) Expand 10 before | Expand all | Expand 10 after
1573 container = this; 1573 container = this;
1574 1574
1575 FloatPoint absPos = container->localToAbsolute(); 1575 FloatPoint absPos = container->localToAbsolute();
1576 region.bounds.setX(absPos.x() + region.bounds.x()); 1576 region.bounds.setX(absPos.x() + region.bounds.x());
1577 region.bounds.setY(absPos.y() + region.bounds.y()); 1577 region.bounds.setY(absPos.y() + region.bounds.y());
1578 1578
1579 regions.append(region); 1579 regions.append(region);
1580 } 1580 }
1581 1581
1582 } // namespace WebCore 1582 } // namespace WebCore
OLDNEW
« no previous file with comments | « Source/core/rendering/RenderBoxModelObject.cpp ('k') | Source/core/rendering/RenderLayer.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698