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. All rights reserv
ed. | 6 * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserv
ed. |
7 * Copyright (C) 2013 Adobe Systems Incorporated. All rights reserved. | 7 * Copyright (C) 2013 Adobe Systems Incorporated. All rights reserved. |
8 * | 8 * |
9 * This library is free software; you can redistribute it and/or | 9 * This library is free software; you can redistribute it and/or |
10 * modify it under the terms of the GNU Library General Public | 10 * modify it under the terms of the GNU Library General Public |
(...skipping 2681 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2692 if (child->parent()->style()->direction() == LTR) { | 2692 if (child->parent()->style()->direction() == LTR) { |
2693 LayoutUnit staticPosition = child->layer()->staticInlinePosition() - con
tainerBlock->borderLogicalLeft(); | 2693 LayoutUnit staticPosition = child->layer()->staticInlinePosition() - con
tainerBlock->borderLogicalLeft(); |
2694 for (RenderObject* curr = child->parent(); curr && curr != containerBloc
k; curr = curr->container()) { | 2694 for (RenderObject* curr = child->parent(); curr && curr != containerBloc
k; curr = curr->container()) { |
2695 if (curr->isBox()) { | 2695 if (curr->isBox()) { |
2696 staticPosition += toRenderBox(curr)->logicalLeft(); | 2696 staticPosition += toRenderBox(curr)->logicalLeft(); |
2697 if (toRenderBox(curr)->isRelPositioned()) | 2697 if (toRenderBox(curr)->isRelPositioned()) |
2698 staticPosition += toRenderBox(curr)->relativePositionOffset(
).width(); | 2698 staticPosition += toRenderBox(curr)->relativePositionOffset(
).width(); |
2699 } else if (curr->isInline()) { | 2699 } else if (curr->isInline()) { |
2700 if (curr->isRelPositioned()) { | 2700 if (curr->isRelPositioned()) { |
2701 if (!curr->style()->logicalLeft().isAuto()) | 2701 if (!curr->style()->logicalLeft().isAuto()) |
2702 staticPosition += curr->style()->logicalLeft().value(); | 2702 staticPosition += valueForLength(curr->style()->logicalL
eft(), curr->containingBlock()->availableWidth()); |
2703 else | 2703 else |
2704 staticPosition -= curr->style()->logicalRight().value(); | 2704 staticPosition -= valueForLength(curr->style()->logicalR
ight(), curr->containingBlock()->availableWidth()); |
2705 } | 2705 } |
2706 } | 2706 } |
2707 } | 2707 } |
2708 logicalLeft.setValue(Fixed, staticPosition); | 2708 logicalLeft.setValue(Fixed, staticPosition); |
2709 } else { | 2709 } else { |
2710 RenderBox* enclosingBox = child->parent()->enclosingBox(); | 2710 RenderBox* enclosingBox = child->parent()->enclosingBox(); |
2711 LayoutUnit staticPosition = child->layer()->staticInlinePosition() + con
tainerLogicalWidth + containerBlock->borderLogicalLeft(); | 2711 LayoutUnit staticPosition = child->layer()->staticInlinePosition() + con
tainerLogicalWidth + containerBlock->borderLogicalLeft(); |
2712 for (RenderObject* curr = child->parent(); curr; curr = curr->container(
)) { | 2712 for (RenderObject* curr = child->parent(); curr; curr = curr->container(
)) { |
2713 if (curr->isBox()) { | 2713 if (curr->isBox()) { |
2714 if (curr != containerBlock) { | 2714 if (curr != containerBlock) { |
2715 staticPosition -= toRenderBox(curr)->logicalLeft(); | 2715 staticPosition -= toRenderBox(curr)->logicalLeft(); |
2716 if (toRenderBox(curr)->isRelPositioned()) | 2716 if (toRenderBox(curr)->isRelPositioned()) |
2717 staticPosition -= toRenderBox(curr)->relativePositionOff
set().width(); | 2717 staticPosition -= toRenderBox(curr)->relativePositionOff
set().width(); |
2718 } | 2718 } |
2719 if (curr == enclosingBox) | 2719 if (curr == enclosingBox) |
2720 staticPosition -= enclosingBox->logicalWidth(); | 2720 staticPosition -= enclosingBox->logicalWidth(); |
2721 } else if (curr->isInline()) { | 2721 } else if (curr->isInline()) { |
2722 if (curr->isRelPositioned()) { | 2722 if (curr->isRelPositioned()) { |
2723 if (!curr->style()->logicalLeft().isAuto()) | 2723 if (!curr->style()->logicalLeft().isAuto()) |
2724 staticPosition -= curr->style()->logicalLeft().value(); | 2724 staticPosition -= valueForLength(curr->style()->logicalL
eft(), curr->containingBlock()->availableWidth()); |
2725 else | 2725 else |
2726 staticPosition += curr->style()->logicalRight().value(); | 2726 staticPosition += valueForLength(curr->style()->logicalR
ight(), curr->containingBlock()->availableWidth()); |
2727 } | 2727 } |
2728 } | 2728 } |
2729 if (curr == containerBlock) | 2729 if (curr == containerBlock) |
2730 break; | 2730 break; |
2731 } | 2731 } |
2732 logicalRight.setValue(Fixed, staticPosition); | 2732 logicalRight.setValue(Fixed, staticPosition); |
2733 } | 2733 } |
2734 } | 2734 } |
2735 | 2735 |
2736 void RenderBox::computePositionedLogicalWidth(LogicalExtentComputedValues& compu
tedValues) const | 2736 void RenderBox::computePositionedLogicalWidth(LogicalExtentComputedValues& compu
tedValues) const |
(...skipping 1702 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4439 | 4439 |
4440 setLogicalTop(oldLogicalTop); | 4440 setLogicalTop(oldLogicalTop); |
4441 setLogicalWidth(oldLogicalWidth); | 4441 setLogicalWidth(oldLogicalWidth); |
4442 setMarginLeft(oldMarginLeft); | 4442 setMarginLeft(oldMarginLeft); |
4443 setMarginRight(oldMarginRight); | 4443 setMarginRight(oldMarginRight); |
4444 | 4444 |
4445 return borderBox; | 4445 return borderBox; |
4446 } | 4446 } |
4447 | 4447 |
4448 } // namespace blink | 4448 } // namespace blink |
OLD | NEW |