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

Side by Side Diff: third_party/WebKit/Source/core/layout/LayoutInline.cpp

Issue 2051703002: Implement closed shadow adjustment for Element.offsetParent (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Re-revert the previous and check position:fixed in layout code. Created 4 years, 5 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 668 matching lines...) Expand 10 before | Expand all | Expand 10 after
679 { 679 {
680 AbsoluteQuadsGeneratorContext context(this, quads); 680 AbsoluteQuadsGeneratorContext context(this, quads);
681 generateLineBoxRects(context); 681 generateLineBoxRects(context);
682 if (quads.isEmpty()) 682 if (quads.isEmpty())
683 context(FloatRect()); 683 context(FloatRect());
684 684
685 if (const LayoutBoxModelObject* continuation = this->continuation()) 685 if (const LayoutBoxModelObject* continuation = this->continuation())
686 continuation->absoluteQuads(quads); 686 continuation->absoluteQuads(quads);
687 } 687 }
688 688
689 LayoutUnit LayoutInline::offsetLeft() const 689 LayoutUnit LayoutInline::offsetLeft(const Element* parent) const
690 { 690 {
691 LayoutPoint topLeft; 691 LayoutPoint topLeft;
692 if (InlineBox* firstBox = firstLineBoxIncludingCulling()) { 692 if (InlineBox* firstBox = firstLineBoxIncludingCulling()) {
693 topLeft = firstBox->topLeft(); 693 topLeft = firstBox->topLeft();
694 } 694 }
695 return adjustedPositionRelativeToOffsetParent(topLeft).x(); 695 return adjustedPositionRelativeTo(topLeft, parent).x();
696 } 696 }
697 697
698 LayoutUnit LayoutInline::offsetTop() const 698 LayoutUnit LayoutInline::offsetTop(const Element* parent) const
699 { 699 {
700 LayoutPoint topLeft; 700 LayoutPoint topLeft;
701 if (InlineBox* firstBox = firstLineBoxIncludingCulling()) { 701 if (InlineBox* firstBox = firstLineBoxIncludingCulling()) {
702 topLeft = firstBox->topLeft(); 702 topLeft = firstBox->topLeft();
703 } 703 }
704 return adjustedPositionRelativeToOffsetParent(topLeft).y(); 704 return adjustedPositionRelativeTo(topLeft, parent).y();
705 } 705 }
706 706
707 static LayoutUnit computeMargin(const LayoutInline* layoutObject, const Length& margin) 707 static LayoutUnit computeMargin(const LayoutInline* layoutObject, const Length& margin)
708 { 708 {
709 if (margin.isFixed()) 709 if (margin.isFixed())
710 return LayoutUnit(margin.value()); 710 return LayoutUnit(margin.value());
711 if (margin.hasPercent()) 711 if (margin.hasPercent())
712 return minimumValueForLength(margin, std::max(LayoutUnit(), layoutObject ->containingBlock()->availableLogicalWidth())); 712 return minimumValueForLength(margin, std::max(LayoutUnit(), layoutObject ->containingBlock()->availableLogicalWidth()));
713 return LayoutUnit(); 713 return LayoutUnit();
714 } 714 }
(...skipping 640 matching lines...) Expand 10 before | Expand all | Expand 10 after
1355 1355
1356 void LayoutInline::invalidateDisplayItemClients(PaintInvalidationReason invalida tionReason) const 1356 void LayoutInline::invalidateDisplayItemClients(PaintInvalidationReason invalida tionReason) const
1357 { 1357 {
1358 LayoutBoxModelObject::invalidateDisplayItemClients(invalidationReason); 1358 LayoutBoxModelObject::invalidateDisplayItemClients(invalidationReason);
1359 1359
1360 for (InlineFlowBox* box = firstLineBox(); box; box = box->nextLineBox()) 1360 for (InlineFlowBox* box = firstLineBox(); box; box = box->nextLineBox())
1361 invalidateDisplayItemClient(*box, invalidationReason); 1361 invalidateDisplayItemClient(*box, invalidationReason);
1362 } 1362 }
1363 1363
1364 } // namespace blink 1364 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698