|
@@ -84,9 +84,7 @@ static Layout::Node& insertion_parent_for_block_node(Layout::NodeWithStyle& layo
|
|
|
return layout_parent;
|
|
|
}
|
|
|
|
|
|
- // TODO: Floats should probably also be able to have inline siblings
|
|
|
- if (layout_node.is_absolutely_positioned() && layout_parent.last_child()->children_are_inline()) {
|
|
|
- // Block is out-of-flow, it can have inline siblings if necessary.
|
|
|
+ if ((layout_node.is_absolutely_positioned() || layout_node.is_floating()) && layout_parent.last_child()->children_are_inline() && layout_parent.last_child()->is_anonymous()) {
|
|
|
return *layout_parent.last_child();
|
|
|
}
|
|
|
|
|
@@ -95,6 +93,11 @@ static Layout::Node& insertion_parent_for_block_node(Layout::NodeWithStyle& layo
|
|
|
return layout_parent;
|
|
|
}
|
|
|
|
|
|
+ if (layout_node.is_absolutely_positioned() || layout_node.is_floating()) {
|
|
|
+ // Block is out-of-flow, it can have inline siblings if necessary.
|
|
|
+ return layout_parent;
|
|
|
+ }
|
|
|
+
|
|
|
// Parent block has inline-level children (our siblings).
|
|
|
// First move these siblings into an anonymous wrapper block.
|
|
|
Vector<JS::Handle<Layout::Node>> children;
|