Remove ListItemFlowDisplayListBuilding

This commit is contained in:
Anthony Ramine 2019-01-14 11:42:42 +01:00
parent 7d57c9b3ab
commit f75578cbf1
3 changed files with 23 additions and 33 deletions

View file

@ -28,7 +28,6 @@ use crate::flow_ref::FlowRef;
use crate::fragment::SpecificFragmentInfo; use crate::fragment::SpecificFragmentInfo;
use crate::fragment::{CanvasFragmentSource, CoordinateSystem, Fragment, ScannedTextFragmentInfo}; use crate::fragment::{CanvasFragmentSource, CoordinateSystem, Fragment, ScannedTextFragmentInfo};
use crate::inline::InlineFragmentNodeFlags; use crate::inline::InlineFragmentNodeFlags;
use crate::list_item::ListItemFlow;
use crate::model::MaybeAuto; use crate::model::MaybeAuto;
use crate::table_cell::CollapsedBordersForCell; use crate::table_cell::CollapsedBordersForCell;
use app_units::{Au, AU_PER_PX}; use app_units::{Au, AU_PER_PX};
@ -2804,34 +2803,6 @@ impl BlockFlow {
} }
} }
pub trait ListItemFlowDisplayListBuilding {
fn build_display_list_for_list_item(&mut self, state: &mut DisplayListBuildState);
}
impl ListItemFlowDisplayListBuilding for ListItemFlow {
fn build_display_list_for_list_item(&mut self, state: &mut DisplayListBuildState) {
// Draw the marker, if applicable.
for marker in &mut self.marker_fragments {
let stacking_relative_border_box = self
.block_flow
.base
.stacking_relative_border_box_for_display_list(marker);
marker.build_display_list(
state,
stacking_relative_border_box,
BorderPaintingMode::Separate,
DisplayListSection::Content,
self.block_flow.base.clip,
None,
);
}
// Draw the rest of the block.
self.block_flow
.build_display_list_for_block(state, BorderPaintingMode::Separate)
}
}
pub trait FlexFlowDisplayListBuilding { pub trait FlexFlowDisplayListBuilding {
fn build_display_list_for_flex(&mut self, state: &mut DisplayListBuildState); fn build_display_list_for_flex(&mut self, state: &mut DisplayListBuildState);
} }

View file

@ -6,7 +6,6 @@ pub use self::builder::BorderPaintingMode;
pub use self::builder::DisplayListBuildState; pub use self::builder::DisplayListBuildState;
pub use self::builder::FlexFlowDisplayListBuilding; pub use self::builder::FlexFlowDisplayListBuilding;
pub use self::builder::IndexableText; pub use self::builder::IndexableText;
pub use self::builder::ListItemFlowDisplayListBuilding;
pub use self::builder::StackingContextCollectionFlags; pub use self::builder::StackingContextCollectionFlags;
pub use self::builder::StackingContextCollectionState; pub use self::builder::StackingContextCollectionState;
pub use self::conversions::ToLayout; pub use self::conversions::ToLayout;

View file

@ -7,8 +7,10 @@
use crate::block::BlockFlow; use crate::block::BlockFlow;
use crate::context::{with_thread_local_font_context, LayoutContext}; use crate::context::{with_thread_local_font_context, LayoutContext};
use crate::display_list::StackingContextCollectionState; use crate::display_list::items::DisplayListSection;
use crate::display_list::{DisplayListBuildState, ListItemFlowDisplayListBuilding}; use crate::display_list::{
BorderPaintingMode, DisplayListBuildState, StackingContextCollectionState,
};
use crate::floats::FloatKind; use crate::floats::FloatKind;
use crate::flow::{Flow, FlowClass, OpaqueFlow}; use crate::flow::{Flow, FlowClass, OpaqueFlow};
use crate::fragment::Overflow; use crate::fragment::Overflow;
@ -189,7 +191,25 @@ impl Flow for ListItemFlow {
} }
fn build_display_list(&mut self, state: &mut DisplayListBuildState) { fn build_display_list(&mut self, state: &mut DisplayListBuildState) {
self.build_display_list_for_list_item(state); // Draw the marker, if applicable.
for marker in &mut self.marker_fragments {
let stacking_relative_border_box = self
.block_flow
.base
.stacking_relative_border_box_for_display_list(marker);
marker.build_display_list(
state,
stacking_relative_border_box,
BorderPaintingMode::Separate,
DisplayListSection::Content,
self.block_flow.base.clip,
None,
);
}
// Draw the rest of the block.
self.block_flow
.build_display_list_for_block(state, BorderPaintingMode::Separate)
} }
fn collect_stacking_contexts(&mut self, state: &mut StackingContextCollectionState) { fn collect_stacking_contexts(&mut self, state: &mut StackingContextCollectionState) {