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) 2005 Allan Sandfeld Jensen (kde@carewolf.com) | 4 * (C) 2005 Allan Sandfeld Jensen (kde@carewolf.com) |
5 * (C) 2005, 2006 Samuel Weinig (sam.weinig@gmail.com) | 5 * (C) 2005, 2006 Samuel Weinig (sam.weinig@gmail.com) |
6 * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. | 6 * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. |
7 * All rights reserved. | 7 * All rights reserved. |
8 * Copyright (C) 2013 Adobe Systems Incorporated. All rights reserved. | 8 * Copyright (C) 2013 Adobe Systems Incorporated. All rights reserved. |
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 4152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4163 | 4163 |
4164 // FIXME: The static distance computation has not been patched for mixed | 4164 // FIXME: The static distance computation has not been patched for mixed |
4165 // writing modes. | 4165 // writing modes. |
4166 LayoutUnit staticLogicalTop = child->layer()->staticBlockPosition(); | 4166 LayoutUnit staticLogicalTop = child->layer()->staticBlockPosition(); |
4167 for (LayoutObject* curr = child->parent(); curr && curr != containerBlock; | 4167 for (LayoutObject* curr = child->parent(); curr && curr != containerBlock; |
4168 curr = curr->container()) { | 4168 curr = curr->container()) { |
4169 if (!curr->isBox() || curr->isTableRow()) | 4169 if (!curr->isBox() || curr->isTableRow()) |
4170 continue; | 4170 continue; |
4171 const LayoutBox& box = *toLayoutBox(curr); | 4171 const LayoutBox& box = *toLayoutBox(curr); |
4172 staticLogicalTop += box.logicalTop(); | 4172 staticLogicalTop += box.logicalTop(); |
| 4173 if (box.isInFlowPositioned()) |
| 4174 staticLogicalTop += box.offsetForInFlowPosition().height(); |
4173 if (!box.isLayoutFlowThread()) | 4175 if (!box.isLayoutFlowThread()) |
4174 continue; | 4176 continue; |
4175 // We're walking out of a flowthread here. This flow thread is not in the | 4177 // We're walking out of a flowthread here. This flow thread is not in the |
4176 // containing block chain, so we need to convert the position from the | 4178 // containing block chain, so we need to convert the position from the |
4177 // coordinate space of this flowthread to the containing coordinate space. | 4179 // coordinate space of this flowthread to the containing coordinate space. |
4178 // The inline position cannot affect the block position, so we don't bother | 4180 // The inline position cannot affect the block position, so we don't bother |
4179 // calculating it. | 4181 // calculating it. |
4180 LayoutUnit dummyInlinePosition; | 4182 LayoutUnit dummyInlinePosition; |
4181 toLayoutFlowThread(box).flowThreadToContainingCoordinateSpace( | 4183 toLayoutFlowThread(box).flowThreadToContainingCoordinateSpace( |
4182 staticLogicalTop, dummyInlinePosition); | 4184 staticLogicalTop, dummyInlinePosition); |
(...skipping 1484 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5667 block->adjustChildDebugRect(rect); | 5669 block->adjustChildDebugRect(rect); |
5668 | 5670 |
5669 return rect; | 5671 return rect; |
5670 } | 5672 } |
5671 | 5673 |
5672 bool LayoutBox::shouldClipOverflow() const { | 5674 bool LayoutBox::shouldClipOverflow() const { |
5673 return hasOverflowClip() || styleRef().containsPaint() || hasControlClip(); | 5675 return hasOverflowClip() || styleRef().containsPaint() || hasControlClip(); |
5674 } | 5676 } |
5675 | 5677 |
5676 } // namespace blink | 5678 } // namespace blink |
OLD | NEW |