| Index: third_party/WebKit/WebCore/rendering/bidi.cpp
|
| ===================================================================
|
| --- third_party/WebKit/WebCore/rendering/bidi.cpp (revision 9391)
|
| +++ third_party/WebKit/WebCore/rendering/bidi.cpp (working copy)
|
| @@ -89,7 +89,7 @@
|
| static bool isLineEmpty = true;
|
| static bool previousLineBrokeCleanly = true;
|
|
|
| -static int getBorderPaddingMargin(RenderBox* child, bool endOfInline)
|
| +static int getBorderPaddingMargin(RenderBoxModelObject* child, bool endOfInline)
|
| {
|
| bool leftSide = (child->style()->direction() == LTR) ? !endOfInline : endOfInline;
|
| if (leftSide)
|
| @@ -102,11 +102,11 @@
|
| unsigned lineDepth = 1;
|
| int extraWidth = 0;
|
| RenderObject* parent = child->parent();
|
| - while (parent->isBox() && parent->isInline() && !parent->isInlineBlockOrInlineTable() && lineDepth++ < cMaxLineDepth) {
|
| + while (parent->isInline() && !parent->isInlineBlockOrInlineTable() && lineDepth++ < cMaxLineDepth) {
|
| if (start && !child->previousSibling())
|
| - extraWidth += getBorderPaddingMargin(toRenderBox(parent), false);
|
| + extraWidth += getBorderPaddingMargin(toRenderBoxModelObject(parent), false);
|
| if (end && !child->nextSibling())
|
| - extraWidth += getBorderPaddingMargin(toRenderBox(parent), true);
|
| + extraWidth += getBorderPaddingMargin(toRenderBoxModelObject(parent), true);
|
| child = parent;
|
| parent = child->parent();
|
| }
|
| @@ -796,7 +796,6 @@
|
| bool endOfInline = false;
|
| RenderObject* o = bidiFirst(this, 0, false);
|
| Vector<FloatWithRect> floats;
|
| - int containerWidth = max(0, containingBlockWidth());
|
| while (o) {
|
| o->invalidateVerticalPosition();
|
| if (o->isReplaced() || o->isFloating() || o->isPositioned()) {
|
| @@ -822,10 +821,6 @@
|
| } else if (o->isText() || (o->isRenderInline() && !endOfInline)) {
|
| if (fullLayout || o->selfNeedsLayout())
|
| o->dirtyLineBoxes(fullLayout);
|
| -
|
| - // Calculate margins of inline flows so that they can be used later by line layout.
|
| - if (o->isRenderInline())
|
| - toRenderInline(o)->calcMargins(containerWidth);
|
| o->setNeedsLayout(false);
|
| }
|
| o = bidiNext(this, o, 0, false, &endOfInline);
|
| @@ -1384,12 +1379,12 @@
|
| return object->style()->preserveNewline();
|
| }
|
|
|
| -static bool inlineFlowRequiresLineBox(RenderBox* flow)
|
| +static bool inlineFlowRequiresLineBox(RenderInline* flow)
|
| {
|
| // FIXME: Right now, we only allow line boxes for inlines that are truly empty.
|
| // We need to fix this, though, because at the very least, inlines containing only
|
| // ignorable whitespace should should also have line boxes.
|
| - return flow->isRenderInline() && !flow->firstChild() && flow->hasHorizontalBordersPaddingOrMargin();
|
| + return !flow->firstChild() && flow->hasHorizontalBordersPaddingOrMargin();
|
| }
|
|
|
| static inline bool requiresLineBox(const InlineIterator& it)
|
| @@ -1397,7 +1392,7 @@
|
| if (it.obj->isFloatingOrPositioned())
|
| return false;
|
|
|
| - if (it.obj->isRenderInline() && !inlineFlowRequiresLineBox(toRenderBox(it.obj)))
|
| + if (it.obj->isRenderInline() && !inlineFlowRequiresLineBox(toRenderInline(it.obj)))
|
| return false;
|
|
|
| if (!shouldCollapseWhiteSpace(it.obj->style()) || it.obj->isBR())
|
| @@ -1480,7 +1475,7 @@
|
|
|
| RenderBox* box = toRenderBox(object);
|
| if (box->style()->hasStaticX()) {
|
| - if (object->style()->isOriginalDisplayInlineType())
|
| + if (box->style()->isOriginalDisplayInlineType())
|
| box->layer()->setStaticX(style()->direction() == LTR ? leftOffset(height(), firstLine) : width() - rightOffset(height(), firstLine));
|
| else
|
| box->layer()->setStaticX(style()->direction() == LTR ? borderLeft() + paddingLeft() : borderRight() + paddingRight());
|
| @@ -1684,7 +1679,7 @@
|
| // Right now, we should only encounter empty inlines here.
|
| ASSERT(!o->firstChild());
|
|
|
| - RenderBox* flowBox = toRenderBox(o);
|
| + RenderInline* flowBox = toRenderInline(o);
|
|
|
| // Now that some inline flows have line boxes, if we are already ignoring spaces, we need
|
| // to make sure that we stop to include this object and then start ignoring spaces again.
|
|
|