| Index: Source/core/rendering/RenderBlockLineLayout.cpp
|
| diff --git a/Source/core/rendering/RenderBlockLineLayout.cpp b/Source/core/rendering/RenderBlockLineLayout.cpp
|
| index ce81bc9dde2ab711acd439ac3558ad18748bf8af..3d8372e2727af7a891b4a8ba80f075ad1e0afc0a 100644
|
| --- a/Source/core/rendering/RenderBlockLineLayout.cpp
|
| +++ b/Source/core/rendering/RenderBlockLineLayout.cpp
|
| @@ -2143,12 +2143,15 @@ void RenderBlockFlow::layoutInlineChildren(bool relayoutChildren, LayoutUnit& re
|
|
|
| // Text truncation kicks in in two cases:
|
| // 1) If your overflow isn't visible and your text-overflow-mode isn't clip.
|
| - // 2) If you're an anonymous block with a block parent that satisfies #1.
|
| + // 2) If you're an anonymous block with a block parent that satisfies #1 that was created
|
| + // to accomodate a block that has inline and block children. This excludes parents where
|
| + // canCollapseAnonymousBlockChild is false, notabley flex items and grid items.
|
| // FIXME: CSS3 says that descendants that are clipped must also know how to truncate. This is insanely
|
| // difficult to figure out in general (especially in the middle of doing layout), so we only handle the
|
| // simple case of an anonymous block truncating when it's parent is clipped.
|
| bool hasTextOverflow = (style()->textOverflow() && hasOverflowClip())
|
| - || (isAnonymousBlock() && parent() && parent()->isRenderBlock() && parent()->style()->textOverflow() && parent()->hasOverflowClip());
|
| + || (isAnonymousBlock() && parent() && parent()->isRenderBlock() && toRenderBlock(parent())->canCollapseAnonymousBlockChild()
|
| + && parent()->style()->textOverflow() && parent()->hasOverflowClip());
|
|
|
| // Walk all the lines and delete our ellipsis line boxes if they exist.
|
| if (hasTextOverflow)
|
|
|