Pass SharedLayoutContext to Flow::compute_absolute_position.

This commit is contained in:
Ms2ger 2016-08-24 10:10:05 +02:00
parent 05e9a9ac86
commit 871c207c44
13 changed files with 29 additions and 29 deletions

View file

@ -28,7 +28,7 @@
#![deny(unsafe_code)] #![deny(unsafe_code)]
use app_units::{Au, MAX_AU}; use app_units::{Au, MAX_AU};
use context::LayoutContext; use context::{LayoutContext, SharedLayoutContext};
use display_list_builder::BlockFlowDisplayListBuilding; use display_list_builder::BlockFlowDisplayListBuilding;
use display_list_builder::{BorderPaintingMode, DisplayListBuildState, FragmentDisplayListBuilding}; use display_list_builder::{BorderPaintingMode, DisplayListBuildState, FragmentDisplayListBuilding};
use euclid::{Point2D, Rect, Size2D}; use euclid::{Point2D, Rect, Size2D};
@ -1834,7 +1834,7 @@ impl Flow for BlockFlow {
} }
} }
fn compute_absolute_position(&mut self, layout_context: &LayoutContext) { fn compute_absolute_position(&mut self, layout_context: &SharedLayoutContext) {
if self.base.flags.contains(NEEDS_LAYER) { if self.base.flags.contains(NEEDS_LAYER) {
self.fragment.flags.insert(HAS_LAYER) self.fragment.flags.insert(HAS_LAYER)
} }
@ -1969,12 +1969,12 @@ impl Flow for BlockFlow {
let stacking_relative_position_of_display_port_for_children = let stacking_relative_position_of_display_port_for_children =
if is_stacking_context || self.is_root() { if is_stacking_context || self.is_root() {
let visible_rect = let visible_rect =
match layout_context.shared.visible_rects.get(&self.layer_id()) { match layout_context.visible_rects.get(&self.layer_id()) {
Some(visible_rect) => *visible_rect, Some(visible_rect) => *visible_rect,
None => Rect::new(Point2D::zero(), layout_context.shared_context().viewport_size), None => Rect::new(Point2D::zero(), layout_context.style_context.viewport_size),
}; };
let viewport_size = layout_context.shared_context().viewport_size; let viewport_size = layout_context.style_context.viewport_size;
visible_rect.inflate(viewport_size.width * DISPLAY_PORT_SIZE_FACTOR, visible_rect.inflate(viewport_size.width * DISPLAY_PORT_SIZE_FACTOR,
viewport_size.height * DISPLAY_PORT_SIZE_FACTOR) viewport_size.height * DISPLAY_PORT_SIZE_FACTOR)
} else if is_stacking_context { } else if is_stacking_context {

View file

@ -8,7 +8,7 @@
use app_units::{Au, MAX_AU}; use app_units::{Au, MAX_AU};
use block::BlockFlow; use block::BlockFlow;
use context::LayoutContext; use context::{LayoutContext, SharedLayoutContext};
use display_list_builder::{DisplayListBuildState, FlexFlowDisplayListBuilding}; use display_list_builder::{DisplayListBuildState, FlexFlowDisplayListBuilding};
use euclid::Point2D; use euclid::Point2D;
use floats::FloatKind; use floats::FloatKind;
@ -920,7 +920,7 @@ impl Flow for FlexFlow {
} }
} }
fn compute_absolute_position(&mut self, layout_context: &LayoutContext) { fn compute_absolute_position(&mut self, layout_context: &SharedLayoutContext) {
self.block_flow.compute_absolute_position(layout_context) self.block_flow.compute_absolute_position(layout_context)
} }

View file

@ -27,7 +27,7 @@
use app_units::Au; use app_units::Au;
use block::{BlockFlow, FormattingContextType}; use block::{BlockFlow, FormattingContextType};
use context::LayoutContext; use context::{LayoutContext, SharedLayoutContext};
use display_list_builder::DisplayListBuildState; use display_list_builder::DisplayListBuildState;
use euclid::{Point2D, Rect, Size2D}; use euclid::{Point2D, Rect, Size2D};
use floats::{Floats, SpeculatedFloatPlacement}; use floats::{Floats, SpeculatedFloatPlacement};
@ -318,7 +318,7 @@ pub trait Flow: fmt::Debug + Sync + Send + 'static {
} }
/// Phase 4 of reflow: computes absolute positions. /// Phase 4 of reflow: computes absolute positions.
fn compute_absolute_position(&mut self, _: &LayoutContext) { fn compute_absolute_position(&mut self, _: &SharedLayoutContext) {
// The default implementation is a no-op. // The default implementation is a no-op.
} }

View file

@ -6,7 +6,7 @@
use app_units::Au; use app_units::Au;
use block::AbsoluteAssignBSizesTraversal; use block::AbsoluteAssignBSizesTraversal;
use context::LayoutContext; use context::{LayoutContext, SharedLayoutContext};
use display_list_builder::DisplayListBuildState; use display_list_builder::DisplayListBuildState;
use display_list_builder::{FragmentDisplayListBuilding, InlineFlowDisplayListBuilding}; use display_list_builder::{FragmentDisplayListBuilding, InlineFlowDisplayListBuilding};
use euclid::{Point2D, Size2D}; use euclid::{Point2D, Size2D};
@ -1532,7 +1532,7 @@ impl Flow for InlineFlow {
} }
} }
fn compute_absolute_position(&mut self, _: &LayoutContext) { fn compute_absolute_position(&mut self, _: &SharedLayoutContext) {
// First, gather up the positions of all the containing blocks (if any). // First, gather up the positions of all the containing blocks (if any).
// //
// FIXME(pcwalton): This will get the absolute containing blocks inside `...` wrong in the // FIXME(pcwalton): This will get the absolute containing blocks inside `...` wrong in the

View file

@ -9,7 +9,7 @@
use app_units::Au; use app_units::Au;
use block::BlockFlow; use block::BlockFlow;
use context::LayoutContext; use context::{LayoutContext, SharedLayoutContext};
use display_list_builder::{DisplayListBuildState, ListItemFlowDisplayListBuilding}; use display_list_builder::{DisplayListBuildState, ListItemFlowDisplayListBuilding};
use euclid::Point2D; use euclid::Point2D;
use floats::FloatKind; use floats::FloatKind;
@ -124,7 +124,7 @@ impl Flow for ListItemFlow {
} }
} }
fn compute_absolute_position(&mut self, layout_context: &LayoutContext) { fn compute_absolute_position(&mut self, layout_context: &SharedLayoutContext) {
self.block_flow.compute_absolute_position(layout_context) self.block_flow.compute_absolute_position(layout_context)
} }

View file

@ -8,7 +8,7 @@
use app_units::Au; use app_units::Au;
use block::BlockFlow; use block::BlockFlow;
use context::LayoutContext; use context::{LayoutContext, SharedLayoutContext};
use display_list_builder::DisplayListBuildState; use display_list_builder::DisplayListBuildState;
use euclid::Point2D; use euclid::Point2D;
use euclid::Size2D; use euclid::Size2D;
@ -163,7 +163,7 @@ impl Flow for MulticolFlow {
} }
} }
fn compute_absolute_position(&mut self, layout_context: &LayoutContext) { fn compute_absolute_position(&mut self, layout_context: &SharedLayoutContext) {
self.block_flow.compute_absolute_position(layout_context); self.block_flow.compute_absolute_position(layout_context);
let pitch = LogicalSize::new(self.block_flow.base.writing_mode, self.column_pitch, Au(0)); let pitch = LogicalSize::new(self.block_flow.base.writing_mode, self.column_pitch, Au(0));
let pitch = pitch.to_physical(self.block_flow.base.writing_mode); let pitch = pitch.to_physical(self.block_flow.base.writing_mode);
@ -254,7 +254,7 @@ impl Flow for MulticolColumnFlow {
Flow::fragment(&mut self.block_flow, layout_context, fragmentation_context) Flow::fragment(&mut self.block_flow, layout_context, fragmentation_context)
} }
fn compute_absolute_position(&mut self, layout_context: &LayoutContext) { fn compute_absolute_position(&mut self, layout_context: &SharedLayoutContext) {
self.block_flow.compute_absolute_position(layout_context) self.block_flow.compute_absolute_position(layout_context)
} }

View file

@ -9,7 +9,7 @@
use app_units::Au; use app_units::Au;
use block::{BlockFlow, CandidateBSizeIterator, ISizeAndMarginsComputer}; use block::{BlockFlow, CandidateBSizeIterator, ISizeAndMarginsComputer};
use block::{ISizeConstraintInput, ISizeConstraintSolution}; use block::{ISizeConstraintInput, ISizeConstraintSolution};
use context::LayoutContext; use context::{LayoutContext, SharedLayoutContext};
use display_list_builder::{BlockFlowDisplayListBuilding, BorderPaintingMode, DisplayListBuildState}; use display_list_builder::{BlockFlowDisplayListBuilding, BorderPaintingMode, DisplayListBuildState};
use euclid::Point2D; use euclid::Point2D;
use flow; use flow;
@ -434,7 +434,7 @@ impl Flow for TableFlow {
self.block_flow.assign_block_size_for_table_like_flow(vertical_spacing) self.block_flow.assign_block_size_for_table_like_flow(vertical_spacing)
} }
fn compute_absolute_position(&mut self, layout_context: &LayoutContext) { fn compute_absolute_position(&mut self, layout_context: &SharedLayoutContext) {
self.block_flow.compute_absolute_position(layout_context) self.block_flow.compute_absolute_position(layout_context)
} }

View file

@ -8,7 +8,7 @@
use app_units::Au; use app_units::Au;
use block::BlockFlow; use block::BlockFlow;
use context::LayoutContext; use context::{LayoutContext, SharedLayoutContext};
use display_list_builder::DisplayListBuildState; use display_list_builder::DisplayListBuildState;
use euclid::Point2D; use euclid::Point2D;
use flow::{Flow, FlowClass, OpaqueFlow}; use flow::{Flow, FlowClass, OpaqueFlow};
@ -66,7 +66,7 @@ impl Flow for TableCaptionFlow {
self.block_flow.assign_block_size(layout_context); self.block_flow.assign_block_size(layout_context);
} }
fn compute_absolute_position(&mut self, layout_context: &LayoutContext) { fn compute_absolute_position(&mut self, layout_context: &SharedLayoutContext) {
self.block_flow.compute_absolute_position(layout_context) self.block_flow.compute_absolute_position(layout_context)
} }

View file

@ -8,7 +8,7 @@
use app_units::Au; use app_units::Au;
use block::{BlockFlow, ISizeAndMarginsComputer, MarginsMayCollapseFlag}; use block::{BlockFlow, ISizeAndMarginsComputer, MarginsMayCollapseFlag};
use context::LayoutContext; use context::{LayoutContext, SharedLayoutContext};
use cssparser::Color; use cssparser::Color;
use display_list_builder::{BlockFlowDisplayListBuilding, BorderPaintingMode, DisplayListBuildState}; use display_list_builder::{BlockFlowDisplayListBuilding, BorderPaintingMode, DisplayListBuildState};
use euclid::{Point2D, Rect, SideOffsets2D, Size2D}; use euclid::{Point2D, Rect, SideOffsets2D, Size2D};
@ -208,7 +208,7 @@ impl Flow for TableCellFlow {
self.assign_block_size_table_cell_base(layout_context); self.assign_block_size_table_cell_base(layout_context);
} }
fn compute_absolute_position(&mut self, layout_context: &LayoutContext) { fn compute_absolute_position(&mut self, layout_context: &SharedLayoutContext) {
self.block_flow.compute_absolute_position(layout_context) self.block_flow.compute_absolute_position(layout_context)
} }

View file

@ -8,7 +8,7 @@
use app_units::Au; use app_units::Au;
use block::{BlockFlow, ISizeAndMarginsComputer}; use block::{BlockFlow, ISizeAndMarginsComputer};
use context::LayoutContext; use context::{LayoutContext, SharedLayoutContext};
use cssparser::{Color, RGBA}; use cssparser::{Color, RGBA};
use display_list_builder::{BlockFlowDisplayListBuilding, BorderPaintingMode, DisplayListBuildState}; use display_list_builder::{BlockFlowDisplayListBuilding, BorderPaintingMode, DisplayListBuildState};
use euclid::Point2D; use euclid::Point2D;
@ -413,7 +413,7 @@ impl Flow for TableRowFlow {
self.assign_block_size_table_row_base(layout_context); self.assign_block_size_table_row_base(layout_context);
} }
fn compute_absolute_position(&mut self, layout_context: &LayoutContext) { fn compute_absolute_position(&mut self, layout_context: &SharedLayoutContext) {
self.block_flow.compute_absolute_position(layout_context) self.block_flow.compute_absolute_position(layout_context)
} }

View file

@ -8,7 +8,7 @@
use app_units::Au; use app_units::Au;
use block::{BlockFlow, ISizeAndMarginsComputer}; use block::{BlockFlow, ISizeAndMarginsComputer};
use context::LayoutContext; use context::{LayoutContext, SharedLayoutContext};
use display_list_builder::DisplayListBuildState; use display_list_builder::DisplayListBuildState;
use euclid::Point2D; use euclid::Point2D;
use flow::{Flow, FlowClass, OpaqueFlow}; use flow::{Flow, FlowClass, OpaqueFlow};
@ -195,7 +195,7 @@ impl Flow for TableRowGroupFlow {
self.block_flow.assign_block_size_for_table_like_flow(self.spacing.vertical) self.block_flow.assign_block_size_for_table_like_flow(self.spacing.vertical)
} }
fn compute_absolute_position(&mut self, layout_context: &LayoutContext) { fn compute_absolute_position(&mut self, layout_context: &SharedLayoutContext) {
self.block_flow.compute_absolute_position(layout_context) self.block_flow.compute_absolute_position(layout_context)
} }

View file

@ -16,7 +16,7 @@
use app_units::Au; use app_units::Au;
use block::{AbsoluteNonReplaced, BlockFlow, FloatNonReplaced, ISizeAndMarginsComputer, ISizeConstraintInput}; use block::{AbsoluteNonReplaced, BlockFlow, FloatNonReplaced, ISizeAndMarginsComputer, ISizeConstraintInput};
use block::{ISizeConstraintSolution, MarginsMayCollapseFlag}; use block::{ISizeConstraintSolution, MarginsMayCollapseFlag};
use context::LayoutContext; use context::{LayoutContext, SharedLayoutContext};
use display_list_builder::DisplayListBuildState; use display_list_builder::DisplayListBuildState;
use euclid::Point2D; use euclid::Point2D;
use floats::FloatKind; use floats::FloatKind;
@ -413,7 +413,7 @@ impl Flow for TableWrapperFlow {
debug_assert!(remaining.is_none()); debug_assert!(remaining.is_none());
} }
fn compute_absolute_position(&mut self, layout_context: &LayoutContext) { fn compute_absolute_position(&mut self, layout_context: &SharedLayoutContext) {
self.block_flow.compute_absolute_position(layout_context) self.block_flow.compute_absolute_position(layout_context)
} }

View file

@ -204,7 +204,7 @@ pub struct ComputeAbsolutePositions<'a> {
impl<'a> PreorderFlowTraversal for ComputeAbsolutePositions<'a> { impl<'a> PreorderFlowTraversal for ComputeAbsolutePositions<'a> {
#[inline] #[inline]
fn process(&self, flow: &mut Flow) { fn process(&self, flow: &mut Flow) {
flow.compute_absolute_position(self.layout_context); flow.compute_absolute_position(self.layout_context.shared);
} }
} }