gioser

tawasuyu/taffy

A high performance rust-powered UI layout library

Rust 501HTML 254C 19JavaScript 81412 Definiciones

Revert "Special-case "compressible replaced elements" in grid sizing algorithm (#785)" (#786)

This reverts commit 9660b2cf8884879037f88415db6be8168a9aaa49.

527e99e059c327b6c6be5a24c210dcba3e658fdf · por Nico Burns · (hace 1 año) · padre 9660b2cf8 · ver el árbol en este commit

Delta semántico · 10

src/compute/grid/types/grid_item.rs

src/style/mod.rs

2 archivos · +1 −37

diff --git a/src/compute/grid/types/grid_item.rs b/src/compute/grid/types/grid_item.rs
index b0c2c21af..28f81a125 100644
--- a/src/compute/grid/types/grid_item.rs
+++ b/src/compute/grid/types/grid_item.rs
@@ -28,9 +28,6 @@ pub(in super::super) struct GridItem {
     /// (in origin-zero coordinates)
     pub column: Line<OriginZeroLine>,
 
-    /// Is it a compressible replaced element?
-    /// https://drafts.csswg.org/css-sizing-3/#min-content-zero
-    pub is_compressible_replaced: bool,
     /// The item's overflow style
     pub overflow: Point<Overflow>,
     /// The item's box_sizing style
@@ -107,7 +104,6 @@ impl GridItem {
             source_order,
             row: row_span,
             column: col_span,
-            is_compressible_replaced: style.is_compressible_replaced(),
             overflow: style.overflow(),
             box_sizing: style.box_sizing(),
             size: style.size(),
@@ -508,20 +504,7 @@ impl GridItem {
 
                 // Otherwise, the automatic minimum size is zero, as usual.
                 if use_content_based_minimum {
-                    let mut minimum_contribution =
-                        self.min_content_contribution_cached(axis, tree, known_dimensions, inner_node_size);
-
-                    // If the item is a compressible replaced element, and has a definite preferred size or maximum size in the
-                    // relevant axis, the size suggestion is capped by those sizes; for this purpose, any indefinite percentages\
-                    // in these sizes are resolved against zero (and considered definite).
-                    if self.is_compressible_replaced {
-                        let size = self.size.get(axis).maybe_resolve(Some(0.0), |val, basis| tree.calc(val, basis));
-                        let max_size =
-                            self.max_size.get(axis).maybe_resolve(Some(0.0), |val, basis| tree.calc(val, basis));
-                        minimum_contribution = minimum_contribution.maybe_min(size).maybe_min(max_size);
-                    }
-
-                    minimum_contribution
+                    self.min_content_contribution_cached(axis, tree, known_dimensions, inner_node_size)
                 } else {
                     0.0
                 }
diff --git a/src/style/mod.rs b/src/style/mod.rs
index 81505cf55..371277e93 100644
--- a/src/style/mod.rs
+++ b/src/style/mod.rs
@@ -52,12 +52,6 @@ pub trait CoreStyle {
     fn is_block(&self) -> bool {
         false
     }
-    /// Is it a compressible replaced element?
-    /// https://drafts.csswg.org/css-sizing-3/#min-content-zero
-    #[inline(always)]
-    fn is_compressible_replaced(&self) -> bool {
-        false
-    }
     /// Which box do size styles apply to
     #[inline(always)]
     fn box_sizing(&self) -> BoxSizing {
@@ -342,9 +336,6 @@ pub struct Style {
     /// Whether a child is display:table or not. This affects children of block layouts.
     /// This should really be part of `Display`, but it is currently seperate because table layout isn't implemented
     pub item_is_table: bool,
-    /// Is it a replaced element like an image or form field?
-    /// https://drafts.csswg.org/css-sizing-3/#min-content-zero
-    pub item_is_replaced: bool,
     /// Should size styles apply to the content box or the border box of the node
     pub box_sizing: BoxSizing,
 
@@ -472,7 +463,6 @@ impl Style {
     pub const DEFAULT: Style = Style {
         display: Display::DEFAULT,
         item_is_table: false,
-        item_is_replaced: false,
         box_sizing: BoxSizing::BorderBox,
         overflow: Point { x: Overflow::Visible, y: Overflow::Visible },
         scrollbar_width: 0.0,
@@ -552,10 +542,6 @@ impl CoreStyle for Style {
         matches!(self.display, Display::Block)
     }
     #[inline(always)]
-    fn is_compressible_replaced(&self) -> bool {
-        self.item_is_replaced
-    }
-    #[inline(always)]
     fn box_sizing(&self) -> BoxSizing {
         self.box_sizing
     }
@@ -615,10 +601,6 @@ impl<T: CoreStyle> CoreStyle for &'_ T {
         (*self).is_block()
     }
     #[inline(always)]
-    fn is_compressible_replaced(&self) -> bool {
-        (*self).is_compressible_replaced()
-    }
-    #[inline(always)]
     fn box_sizing(&self) -> BoxSizing {
         (*self).box_sizing()
     }
@@ -955,7 +937,6 @@ mod tests {
         let old_defaults = Style {
             display: Default::default(),
             item_is_table: false,
-            item_is_replaced: false,
             box_sizing: Default::default(),
             overflow: Default::default(),
             scrollbar_width: 0.0,