diff options
author | Martin Robinson <mrobinson@igalia.com> | 2024-03-27 12:57:27 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-03-27 11:57:27 +0000 |
commit | b8c82c1ab00dc8d3738523b60afd9cdcf548e83c (patch) | |
tree | c4ba2c6921474efc91be5b86c39840b458700e18 /components/layout_2020/table/layout.rs | |
parent | 15cb9dd5fcdee81c80c5c19b12bb50504754c2ad (diff) | |
download | servo-b8c82c1ab00dc8d3738523b60afd9cdcf548e83c.tar.gz servo-b8c82c1ab00dc8d3738523b60afd9cdcf548e83c.zip |
layout: Allow transforming inline replaced elements (#31833)
This requires passing through information about whether or not the
element in question is replaced when checking to see if it's
transformable and transitively all functions that make decisions about
containing blocks. A new FragmentFlag is added to help track this -- it
will be set on both the replaced items BoxFragment container as well as
the Fragment for the replaced item itself.
Fixes #31806.
Diffstat (limited to 'components/layout_2020/table/layout.rs')
-rw-r--r-- | components/layout_2020/table/layout.rs | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/components/layout_2020/table/layout.rs b/components/layout_2020/table/layout.rs index ea223ea0cce..32531b3c383 100644 --- a/components/layout_2020/table/layout.rs +++ b/components/layout_2020/table/layout.rs @@ -22,7 +22,7 @@ use super::{Table, TableSlot, TableSlotCell, TableTrack, TableTrackGroup}; use crate::context::LayoutContext; use crate::formatting_contexts::{Baselines, IndependentLayout}; use crate::fragment_tree::{ - BaseFragmentInfo, BoxFragment, CollapsedBlockMargins, ExtraBackground, Fragment, + BaseFragmentInfo, BoxFragment, CollapsedBlockMargins, ExtraBackground, Fragment, FragmentFlags, PositioningFragment, }; use crate::geom::{AuOrAuto, LengthPercentageOrAuto, LogicalRect, LogicalSides, LogicalVec2}; @@ -985,11 +985,15 @@ impl<'a> TableLayout<'a> { row.group_index.map_or(false, |group_index| { self.table.row_groups[group_index] .style - .establishes_containing_block_for_absolute_descendants() + .establishes_containing_block_for_absolute_descendants( + FragmentFlags::empty(), + ) }); row_group_collects_for_nearest_positioned_ancestor || row.style - .establishes_containing_block_for_absolute_descendants() + .establishes_containing_block_for_absolute_descendants( + FragmentFlags::empty(), + ) }); let mut cells_laid_out_row = Vec::new(); |