diff options
author | Patrick Walton <pcwalton@mimiga.net> | 2016-02-03 10:51:41 -0800 |
---|---|---|
committer | Patrick Walton <pcwalton@mimiga.net> | 2016-02-03 16:06:24 -0800 |
commit | 7c5b2d6cb3ee4f934e529162be368c36a7f590a4 (patch) | |
tree | f4210b9657dd5652aba454d73eb6d72271fed5f9 /components/layout | |
parent | f605c6aa69e34fcd5734350759969bfac2098952 (diff) | |
download | servo-7c5b2d6cb3ee4f934e529162be368c36a7f590a4.tar.gz servo-7c5b2d6cb3ee4f934e529162be368c36a7f590a4.zip |
layout: Separate out overflow-for-scrolling from overflow-for-paint.
Closes #9484.
Diffstat (limited to 'components/layout')
-rw-r--r-- | components/layout/block.rs | 4 | ||||
-rw-r--r-- | components/layout/display_list_builder.rs | 4 | ||||
-rw-r--r-- | components/layout/flex.rs | 6 | ||||
-rw-r--r-- | components/layout/flow.rs | 17 | ||||
-rw-r--r-- | components/layout/fragment.rs | 53 | ||||
-rw-r--r-- | components/layout/inline.rs | 12 | ||||
-rw-r--r-- | components/layout/layout_thread.rs | 2 | ||||
-rw-r--r-- | components/layout/list_item.rs | 7 | ||||
-rw-r--r-- | components/layout/multicol.rs | 8 | ||||
-rw-r--r-- | components/layout/table.rs | 6 | ||||
-rw-r--r-- | components/layout/table_caption.rs | 6 | ||||
-rw-r--r-- | components/layout/table_cell.rs | 4 | ||||
-rw-r--r-- | components/layout/table_colgroup.rs | 8 | ||||
-rw-r--r-- | components/layout/table_row.rs | 6 | ||||
-rw-r--r-- | components/layout/table_rowgroup.rs | 6 | ||||
-rw-r--r-- | components/layout/table_wrapper.rs | 6 |
16 files changed, 99 insertions, 56 deletions
diff --git a/components/layout/block.rs b/components/layout/block.rs index 2e7a4e935a2..c26cd450b74 100644 --- a/components/layout/block.rs +++ b/components/layout/block.rs @@ -43,7 +43,7 @@ use flow::{NEEDS_LAYER, PostorderFlowTraversal, PreorderFlowTraversal, Fragmenta use flow::{self, BaseFlow, EarlyAbsolutePositionInfo, Flow, FlowClass, ForceNonfloatedFlag}; use flow_list::FlowList; use flow_ref::FlowRef; -use fragment::{CoordinateSystem, Fragment, FragmentBorderBoxIterator, HAS_LAYER}; +use fragment::{CoordinateSystem, Fragment, FragmentBorderBoxIterator, HAS_LAYER, Overflow}; use fragment::{SpecificFragmentInfo}; use gfx::display_list::{ClippingRegion, DisplayList}; use gfx_traits::LayerId; @@ -2098,7 +2098,7 @@ impl Flow for BlockFlow { self.fragment.repair_style(new_style) } - fn compute_overflow(&self) -> Rect<Au> { + fn compute_overflow(&self) -> Overflow { let flow_size = self.base.position.size.to_physical(self.base.writing_mode); self.fragment.compute_overflow(&flow_size, &self.base diff --git a/components/layout/display_list_builder.rs b/components/layout/display_list_builder.rs index a04c4cd811d..93b74f368ef 100644 --- a/components/layout/display_list_builder.rs +++ b/components/layout/display_list_builder.rs @@ -1218,7 +1218,7 @@ impl FragmentDisplayListBuilding for Fragment { CoordinateSystem::Parent) } StackingContextCreationMode::InnerScrollWrapper => { - Rect::new(Point2D::zero(), base_flow.overflow.size) + Rect::new(Point2D::zero(), base_flow.overflow.scroll.size) } }; let overflow = match mode { @@ -1228,7 +1228,7 @@ impl FragmentDisplayListBuilding for Fragment { let border_box_offset = border_box.translate(&-base_flow.stacking_relative_position).origin; // Then, using that, compute our overflow region relative to our border box. - base_flow.overflow.translate(&-border_box_offset) + base_flow.overflow.paint.translate(&-border_box_offset) } StackingContextCreationMode::InnerScrollWrapper | StackingContextCreationMode::OuterScrollWrapper => { diff --git a/components/layout/flex.rs b/components/layout/flex.rs index 8a3172b99f5..61151ddd6a9 100644 --- a/components/layout/flex.rs +++ b/components/layout/flex.rs @@ -10,7 +10,7 @@ use app_units::Au; use block::BlockFlow; use context::LayoutContext; use display_list_builder::FlexFlowDisplayListBuilding; -use euclid::{Point2D, Rect}; +use euclid::Point2D; use floats::FloatKind; use flow; use flow::INLINE_POSITION_IS_STATIC; @@ -18,7 +18,7 @@ use flow::IS_ABSOLUTELY_POSITIONED; use flow::ImmutableFlowUtils; use flow::{Flow, FlowClass, OpaqueFlow}; use flow::{HAS_LEFT_FLOATED_DESCENDANTS, HAS_RIGHT_FLOATED_DESCENDANTS}; -use fragment::{Fragment, FragmentBorderBoxIterator}; +use fragment::{Fragment, FragmentBorderBoxIterator, Overflow}; use gfx::display_list::DisplayList; use incremental::{REFLOW, REFLOW_OUT_OF_FLOW}; use layout_debug; @@ -432,7 +432,7 @@ impl Flow for FlexFlow { self.block_flow.repair_style(new_style) } - fn compute_overflow(&self) -> Rect<Au> { + fn compute_overflow(&self) -> Overflow { self.block_flow.compute_overflow() } diff --git a/components/layout/flow.rs b/components/layout/flow.rs index 215e25bd731..d59d7f38123 100644 --- a/components/layout/flow.rs +++ b/components/layout/flow.rs @@ -32,7 +32,7 @@ use euclid::{Point2D, Rect, Size2D}; use floats::Floats; use flow_list::{FlowList, FlowListIterator, MutFlowListIterator}; use flow_ref::{self, FlowRef, WeakFlowRef}; -use fragment::{Fragment, FragmentBorderBoxIterator, SpecificFragmentInfo}; +use fragment::{Fragment, FragmentBorderBoxIterator, Overflow, SpecificFragmentInfo}; use gfx::display_list::{ClippingRegion, DisplayList}; use gfx_traits::{LayerId, LayerType}; use incremental::{RECONSTRUCT_FLOW, REFLOW, REFLOW_OUT_OF_FLOW, REPAINT, RestyleDamage}; @@ -266,15 +266,16 @@ pub trait Flow: fmt::Debug + Sync + Send + 'static { // FIXME(#2795): Get the real container size. let container_size = Size2D::zero(); for kid in mut_base(self).children.iter_mut() { - let kid_overflow = base(kid).overflow; + let mut kid_overflow = base(kid).overflow; let kid_position = base(kid).position.to_physical(base(kid).writing_mode, container_size); - overflow = overflow.union(&kid_overflow.translate(&kid_position.origin)) + kid_overflow.translate(&kid_position.origin); + overflow.union(&kid_overflow) } } _ => {} } - mut_base(self).overflow = overflow; + mut_base(self).overflow = overflow } /// Phase 4 of reflow: computes absolute positions. @@ -286,7 +287,7 @@ pub trait Flow: fmt::Debug + Sync + Send + 'static { fn build_display_list(&mut self, layout_context: &LayoutContext); /// Returns the union of all overflow rects of all of this flow's fragments. - fn compute_overflow(&self) -> Rect<Au>; + fn compute_overflow(&self) -> Overflow; /// Iterates through border boxes of all of this flow's fragments. /// Level provides a zero based index indicating the current @@ -865,7 +866,7 @@ pub struct BaseFlow { /// The amount of overflow of this flow, relative to the containing block. Must include all the /// pixels of all the display list items for correct invalidation. - pub overflow: Rect<Au>, + pub overflow: Overflow, /// Data used during parallel traversals. /// @@ -1078,7 +1079,7 @@ impl BaseFlow { children: FlowList::new(), intrinsic_inline_sizes: IntrinsicISizes::new(), position: LogicalRect::zero(writing_mode), - overflow: Rect::zero(), + overflow: Overflow::new(), parallel: FlowParallelInfo::new(), floats: Floats::new(writing_mode), collapsible_margins: CollapsibleMargins::new(), @@ -1132,7 +1133,7 @@ impl BaseFlow { let container_size = Size2D::zero(); let position_with_overflow = self.position .to_physical(self.writing_mode, container_size) - .union(&self.overflow); + .union(&self.overflow.paint); let bounds = Rect::new(self.stacking_relative_position, position_with_overflow.size); let all_items = match self.display_list_building_result { diff --git a/components/layout/fragment.rs b/components/layout/fragment.rs index 45ffac1c659..692bffd3afd 100644 --- a/components/layout/fragment.rs +++ b/components/layout/fragment.rs @@ -2176,7 +2176,7 @@ impl Fragment { pub fn compute_overflow(&self, flow_size: &Size2D<Au>, relative_containing_block_size: &LogicalSize<Au>) - -> Rect<Au> { + -> Overflow { let mut border_box = self.border_box.to_physical(self.style.writing_mode, *flow_size); // Relative position can cause us to draw outside our border box. @@ -2186,31 +2186,33 @@ impl Fragment { let relative_position = self.relative_position(relative_containing_block_size); border_box = border_box.translate_by_size(&relative_position.to_physical(self.style.writing_mode)); - let mut overflow = border_box; + let mut overflow = Overflow::from_rect(&border_box); // Box shadows cause us to draw outside our border box. for box_shadow in &self.style().get_effects().box_shadow.0 { let offset = Point2D::new(box_shadow.offset_x, box_shadow.offset_y); let inflation = box_shadow.spread_radius + box_shadow.blur_radius * BLUR_INFLATION_FACTOR; - overflow = overflow.union(&border_box.translate(&offset).inflate(inflation, inflation)) + overflow.paint = overflow.paint.union(&border_box.translate(&offset) + .inflate(inflation, inflation)) } // Outlines cause us to draw outside our border box. let outline_width = self.style.get_outline().outline_width; if outline_width != Au(0) { - overflow = overflow.union(&border_box.inflate(outline_width, outline_width)) + overflow.paint = overflow.paint.union(&border_box.inflate(outline_width, + outline_width)) } // Include the overflow of the block flow, if any. match self.specific { SpecificFragmentInfo::InlineBlock(ref info) => { let block_flow = info.flow_ref.as_block(); - overflow = overflow.union(&flow::base(block_flow).overflow); + overflow.union(&flow::base(block_flow).overflow); } SpecificFragmentInfo::InlineAbsolute(ref info) => { let block_flow = info.flow_ref.as_block(); - overflow = overflow.union(&flow::base(block_flow).overflow); + overflow.union(&flow::base(block_flow).overflow); } _ => (), } @@ -2572,6 +2574,45 @@ impl WhitespaceStrippingResult { } } +/// The overflow area. We need two different notions of overflow: paint overflow and scrollable +/// overflow. +#[derive(Copy, Clone, Debug)] +pub struct Overflow { + pub scroll: Rect<Au>, + pub paint: Rect<Au>, +} + +impl Overflow { + pub fn new() -> Overflow { + Overflow { + scroll: Rect::zero(), + paint: Rect::zero(), + } + } + + pub fn from_rect(border_box: &Rect<Au>) -> Overflow { + Overflow { + scroll: *border_box, + paint: *border_box, + } + } + + pub fn union(&mut self, other: &Overflow) { + self.scroll = self.scroll.union(&other.scroll); + self.paint = self.paint.union(&other.paint); + } + + pub fn union_rect(&mut self, rect: &Rect<Au>) { + self.scroll = self.scroll.union(&rect); + self.paint = self.paint.union(&rect); + } + + pub fn translate(&mut self, point: &Point2D<Au>) { + self.scroll = self.scroll.translate(point); + self.paint = self.paint.translate(point); + } +} + bitflags! { flags FragmentFlags: u8 { /// Whether this fragment has a layer. diff --git a/components/layout/inline.rs b/components/layout/inline.rs index 9f77ecfcb9e..d20fb2224a1 100644 --- a/components/layout/inline.rs +++ b/components/layout/inline.rs @@ -8,12 +8,13 @@ use app_units::Au; use block::AbsoluteAssignBSizesTraversal; use context::LayoutContext; use display_list_builder::{FragmentDisplayListBuilding, InlineFlowDisplayListBuilding}; -use euclid::{Point2D, Rect, Size2D}; +use euclid::{Point2D, Size2D}; use floats::{FloatKind, Floats, PlacementInfo}; use flow::{EarlyAbsolutePositionInfo, MutableFlowUtils, OpaqueFlow}; use flow::{self, BaseFlow, Flow, FlowClass, ForceNonfloatedFlag, IS_ABSOLUTELY_POSITIONED}; use flow_ref; -use fragment::{CoordinateSystem, Fragment, FragmentBorderBoxIterator, SpecificFragmentInfo}; +use fragment::{CoordinateSystem, Fragment, FragmentBorderBoxIterator, Overflow}; +use fragment::{SpecificFragmentInfo}; use gfx::display_list::OpaqueNode; use gfx::font::FontMetrics; use gfx::font_context::FontContext; @@ -1756,14 +1757,13 @@ impl Flow for InlineFlow { fn repair_style(&mut self, _: &Arc<ComputedValues>) {} - fn compute_overflow(&self) -> Rect<Au> { - let mut overflow = Rect::zero(); + fn compute_overflow(&self) -> Overflow { + let mut overflow = Overflow::new(); let flow_size = self.base.position.size.to_physical(self.base.writing_mode); let relative_containing_block_size = &self.base.early_absolute_position_info.relative_containing_block_size; for fragment in &self.fragments.fragments { - overflow = overflow.union(&fragment.compute_overflow(&flow_size, - &relative_containing_block_size)) + overflow.union(&fragment.compute_overflow(&flow_size, &relative_containing_block_size)) } overflow } diff --git a/components/layout/layout_thread.rs b/components/layout/layout_thread.rs index 206bfe4c82d..bc34adf562f 100644 --- a/components/layout/layout_thread.rs +++ b/components/layout/layout_thread.rs @@ -865,7 +865,7 @@ impl LayoutThread { if rw_data.stylist.viewport_constraints().is_some() { root_flow.position.size.to_physical(root_flow.writing_mode) } else { - root_flow.overflow.size + root_flow.overflow.scroll.size } }; let mut display_list = box DisplayList::new(); diff --git a/components/layout/list_item.rs b/components/layout/list_item.rs index 7ea9ebd0fdc..95978c6c7ae 100644 --- a/components/layout/list_item.rs +++ b/components/layout/list_item.rs @@ -11,10 +11,11 @@ use app_units::Au; use block::BlockFlow; use context::LayoutContext; use display_list_builder::ListItemFlowDisplayListBuilding; -use euclid::{Point2D, Rect}; +use euclid::Point2D; use floats::FloatKind; use flow::{Flow, FlowClass, OpaqueFlow}; use fragment::{CoordinateSystem, Fragment, FragmentBorderBoxIterator, GeneratedContentInfo}; +use fragment::{Overflow}; use generated_content; use gfx::display_list::DisplayList; use incremental::RESOLVE_GENERATED_CONTENT; @@ -152,14 +153,14 @@ impl Flow for ListItemFlow { self.block_flow.repair_style(new_style) } - fn compute_overflow(&self) -> Rect<Au> { + fn compute_overflow(&self) -> Overflow { let mut overflow = self.block_flow.compute_overflow(); let flow_size = self.block_flow.base.position.size.to_physical(self.block_flow.base.writing_mode); let relative_containing_block_size = &self.block_flow.base.early_absolute_position_info.relative_containing_block_size; for fragment in &self.marker_fragments { - overflow = overflow.union(&fragment.compute_overflow(&flow_size, &relative_containing_block_size)) + overflow.union(&fragment.compute_overflow(&flow_size, &relative_containing_block_size)) } overflow } diff --git a/components/layout/multicol.rs b/components/layout/multicol.rs index 196a65715d6..93ecbe26c29 100644 --- a/components/layout/multicol.rs +++ b/components/layout/multicol.rs @@ -9,11 +9,11 @@ use app_units::Au; use block::BlockFlow; use context::LayoutContext; -use euclid::{Point2D, Rect}; +use euclid::Point2D; use floats::FloatKind; use flow::{Flow, FlowClass, OpaqueFlow, mut_base, FragmentationContext}; use flow_ref::{self, FlowRef}; -use fragment::{Fragment, FragmentBorderBoxIterator}; +use fragment::{Fragment, FragmentBorderBoxIterator, Overflow}; use std::cmp::{min, max}; use std::fmt; use std::sync::Arc; @@ -186,7 +186,7 @@ impl Flow for MulticolFlow { self.block_flow.repair_style(new_style) } - fn compute_overflow(&self) -> Rect<Au> { + fn compute_overflow(&self) -> Overflow { self.block_flow.compute_overflow() } @@ -264,7 +264,7 @@ impl Flow for MulticolColumnFlow { self.block_flow.repair_style(new_style) } - fn compute_overflow(&self) -> Rect<Au> { + fn compute_overflow(&self) -> Overflow { self.block_flow.compute_overflow() } diff --git a/components/layout/table.rs b/components/layout/table.rs index f8b07e72b14..e8a8998b14d 100644 --- a/components/layout/table.rs +++ b/components/layout/table.rs @@ -11,10 +11,10 @@ use block::{BlockFlow, CandidateBSizeIterator, ISizeAndMarginsComputer}; use block::{ISizeConstraintInput, ISizeConstraintSolution}; use context::LayoutContext; use display_list_builder::{BlockFlowDisplayListBuilding, BorderPaintingMode}; -use euclid::{Point2D, Rect}; +use euclid::Point2D; use flow::{IMPACTED_BY_RIGHT_FLOATS, ImmutableFlowUtils, OpaqueFlow}; use flow::{self, EarlyAbsolutePositionInfo, Flow, FlowClass, IMPACTED_BY_LEFT_FLOATS}; -use fragment::{Fragment, FragmentBorderBoxIterator}; +use fragment::{Fragment, FragmentBorderBoxIterator, Overflow}; use gfx::display_list::DisplayList; use incremental::{REFLOW, REFLOW_OUT_OF_FLOW}; use layout_debug; @@ -536,7 +536,7 @@ impl Flow for TableFlow { self.block_flow.repair_style(new_style) } - fn compute_overflow(&self) -> Rect<Au> { + fn compute_overflow(&self) -> Overflow { self.block_flow.compute_overflow() } diff --git a/components/layout/table_caption.rs b/components/layout/table_caption.rs index 287c1c617e1..1b764360201 100644 --- a/components/layout/table_caption.rs +++ b/components/layout/table_caption.rs @@ -9,9 +9,9 @@ use app_units::Au; use block::BlockFlow; use context::LayoutContext; -use euclid::{Point2D, Rect}; +use euclid::Point2D; use flow::{Flow, FlowClass, OpaqueFlow}; -use fragment::{Fragment, FragmentBorderBoxIterator}; +use fragment::{Fragment, FragmentBorderBoxIterator, Overflow}; use std::fmt; use std::sync::Arc; use style::properties::ComputedValues; @@ -83,7 +83,7 @@ impl Flow for TableCaptionFlow { self.block_flow.repair_style(new_style) } - fn compute_overflow(&self) -> Rect<Au> { + fn compute_overflow(&self) -> Overflow { self.block_flow.compute_overflow() } diff --git a/components/layout/table_cell.rs b/components/layout/table_cell.rs index cfd66e26bef..51d15187fd7 100644 --- a/components/layout/table_cell.rs +++ b/components/layout/table_cell.rs @@ -13,7 +13,7 @@ use cssparser::Color; use display_list_builder::{BlockFlowDisplayListBuilding, BorderPaintingMode}; use euclid::{Point2D, Rect, SideOffsets2D, Size2D}; use flow::{Flow, FlowClass, OpaqueFlow}; -use fragment::{Fragment, FragmentBorderBoxIterator}; +use fragment::{Fragment, FragmentBorderBoxIterator, Overflow}; use gfx::display_list::DisplayList; use layout_debug; use model::MaybeAuto; @@ -197,7 +197,7 @@ impl Flow for TableCellFlow { self.block_flow.repair_style(new_style) } - fn compute_overflow(&self) -> Rect<Au> { + fn compute_overflow(&self) -> Overflow { self.block_flow.compute_overflow() } diff --git a/components/layout/table_colgroup.rs b/components/layout/table_colgroup.rs index 4b6dd537fe0..bcee65b2564 100644 --- a/components/layout/table_colgroup.rs +++ b/components/layout/table_colgroup.rs @@ -8,9 +8,9 @@ use app_units::Au; use context::LayoutContext; -use euclid::{Point2D, Rect}; +use euclid::Point2D; use flow::{BaseFlow, Flow, FlowClass, ForceNonfloatedFlag, OpaqueFlow}; -use fragment::{Fragment, FragmentBorderBoxIterator, SpecificFragmentInfo}; +use fragment::{Fragment, FragmentBorderBoxIterator, Overflow, SpecificFragmentInfo}; use layout_debug; use std::cmp::max; use std::fmt; @@ -94,8 +94,8 @@ impl Flow for TableColGroupFlow { fn repair_style(&mut self, _: &Arc<ComputedValues>) {} - fn compute_overflow(&self) -> Rect<Au> { - Rect::zero() + fn compute_overflow(&self) -> Overflow { + Overflow::new() } fn generated_containing_block_size(&self, _: OpaqueFlow) -> LogicalSize<Au> { diff --git a/components/layout/table_row.rs b/components/layout/table_row.rs index c3b318acd61..13dc123958e 100644 --- a/components/layout/table_row.rs +++ b/components/layout/table_row.rs @@ -11,10 +11,10 @@ use block::{BlockFlow, ISizeAndMarginsComputer}; use context::LayoutContext; use cssparser::{Color, RGBA}; use display_list_builder::{BlockFlowDisplayListBuilding, BorderPaintingMode}; -use euclid::{Point2D, Rect}; +use euclid::Point2D; use flow::{self, EarlyAbsolutePositionInfo, Flow, FlowClass, ImmutableFlowUtils, OpaqueFlow}; use flow_list::MutFlowListIterator; -use fragment::{Fragment, FragmentBorderBoxIterator}; +use fragment::{Fragment, FragmentBorderBoxIterator, Overflow}; use gfx::display_list::DisplayList; use layout_debug; use model::MaybeAuto; @@ -439,7 +439,7 @@ impl Flow for TableRowFlow { self.block_flow.repair_style(new_style) } - fn compute_overflow(&self) -> Rect<Au> { + fn compute_overflow(&self) -> Overflow { self.block_flow.compute_overflow() } diff --git a/components/layout/table_rowgroup.rs b/components/layout/table_rowgroup.rs index 66a3f9ac029..9a9e9b59eb0 100644 --- a/components/layout/table_rowgroup.rs +++ b/components/layout/table_rowgroup.rs @@ -9,9 +9,9 @@ use app_units::Au; use block::{BlockFlow, ISizeAndMarginsComputer}; use context::LayoutContext; -use euclid::{Point2D, Rect}; +use euclid::Point2D; use flow::{Flow, FlowClass, OpaqueFlow}; -use fragment::{Fragment, FragmentBorderBoxIterator}; +use fragment::{Fragment, FragmentBorderBoxIterator, Overflow}; use layout_debug; use rustc_serialize::{Encodable, Encoder}; use std::fmt; @@ -217,7 +217,7 @@ impl Flow for TableRowGroupFlow { self.block_flow.repair_style(new_style) } - fn compute_overflow(&self) -> Rect<Au> { + fn compute_overflow(&self) -> Overflow { self.block_flow.compute_overflow() } diff --git a/components/layout/table_wrapper.rs b/components/layout/table_wrapper.rs index 02cc1b768fb..a6ab4a2c282 100644 --- a/components/layout/table_wrapper.rs +++ b/components/layout/table_wrapper.rs @@ -17,11 +17,11 @@ use app_units::Au; use block::{AbsoluteNonReplaced, BlockFlow, FloatNonReplaced, ISizeAndMarginsComputer, ISizeConstraintInput}; use block::{ISizeConstraintSolution, MarginsMayCollapseFlag}; use context::LayoutContext; -use euclid::{Point2D, Rect}; +use euclid::Point2D; use floats::FloatKind; use flow::{Flow, FlowClass, ImmutableFlowUtils}; use flow::{IMPACTED_BY_LEFT_FLOATS, IMPACTED_BY_RIGHT_FLOATS, INLINE_POSITION_IS_STATIC, OpaqueFlow}; -use fragment::{Fragment, FragmentBorderBoxIterator}; +use fragment::{Fragment, FragmentBorderBoxIterator, Overflow}; use model::MaybeAuto; use std::cmp::{max, min}; use std::fmt; @@ -451,7 +451,7 @@ impl Flow for TableWrapperFlow { self.block_flow.repair_style(new_style) } - fn compute_overflow(&self) -> Rect<Au> { + fn compute_overflow(&self) -> Overflow { self.block_flow.compute_overflow() } |