mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 15:07:45 +00:00
LibWeb: Use correct coordinate space when measuring space between floats
When calculating how much space is available for inline content between left and right floated elements, we have to use coordinates in the containing block's coordinate space, since that's what floats use. This fixes an issue where text would sometimes overlap floats.
This commit is contained in:
parent
8c2a4a2a3d
commit
bb1f26c149
1 changed files with 2 additions and 2 deletions
|
@ -48,7 +48,7 @@ InlineFormattingContext::AvailableSpaceForLineInfo InlineFormattingContext::avai
|
|||
|
||||
for (ssize_t i = bfc.left_side_floats().boxes.size() - 1; i >= 0; --i) {
|
||||
auto const& floating_box = bfc.left_side_floats().boxes.at(i);
|
||||
auto rect = margin_box_rect(floating_box, m_state);
|
||||
auto rect = margin_box_rect_in_ancestor_coordinate_space(floating_box, parent().root(), m_state);
|
||||
if (rect.contains_vertically(y_in_root)) {
|
||||
info.left = rect.right() + 1;
|
||||
break;
|
||||
|
@ -59,7 +59,7 @@ InlineFormattingContext::AvailableSpaceForLineInfo InlineFormattingContext::avai
|
|||
|
||||
for (ssize_t i = bfc.right_side_floats().boxes.size() - 1; i >= 0; --i) {
|
||||
auto const& floating_box = bfc.right_side_floats().boxes.at(i);
|
||||
auto rect = margin_box_rect(floating_box, m_state);
|
||||
auto rect = margin_box_rect_in_ancestor_coordinate_space(floating_box, parent().root(), m_state);
|
||||
if (rect.contains_vertically(y_in_root)) {
|
||||
info.right = rect.left() - 1;
|
||||
break;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue