diff options
Diffstat (limited to 'components/layout/display_list_builder.rs')
-rw-r--r-- | components/layout/display_list_builder.rs | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/components/layout/display_list_builder.rs b/components/layout/display_list_builder.rs index d2dd57f0e21..9e82add3a12 100644 --- a/components/layout/display_list_builder.rs +++ b/components/layout/display_list_builder.rs @@ -18,7 +18,7 @@ use flow::{self, BaseFlow, Flow, IS_ABSOLUTELY_POSITIONED}; use flow_ref; use fragment::{CoordinateSystem, Fragment, HAS_LAYER, IframeFragmentInfo, ImageFragmentInfo}; use fragment::{ScannedTextFragmentInfo, SpecificFragmentInfo}; -use inline::InlineFlow; +use inline::{FIRST_FRAGMENT_OF_ELEMENT, InlineFlow, LAST_FRAGMENT_OF_ELEMENT}; use list_item::ListItemFlow; use model::{self, MaybeAuto, ToGfxMatrix}; use table_cell::CollapsedBordersForCell; @@ -51,8 +51,8 @@ use style::computed_values::{background_attachment, background_clip, background_ use style::computed_values::{background_repeat, background_size}; use style::computed_values::{border_style, image_rendering, overflow_x, position}; use style::computed_values::{visibility, transform, transform_style}; -use style::properties::ComputedValues; use style::properties::style_structs::Border; +use style::properties::{self, ComputedValues}; use style::values::RGBA; use style::values::computed; use style::values::computed::LinearGradient; @@ -951,13 +951,20 @@ impl FragmentDisplayListBuilding for Fragment { level, &stacking_relative_border_box, &clip); + + let mut style = node.style.clone(); + properties::modify_border_style_for_inline_sides( + &mut style, + node.flags.contains(FIRST_FRAGMENT_OF_ELEMENT), + node.flags.contains(LAST_FRAGMENT_OF_ELEMENT)); self.build_display_list_for_borders_if_applicable( - &*node.style, + &*style, border_painting_mode, display_list, &stacking_relative_border_box, level, &clip); + self.build_display_list_for_outline_if_applicable( &*node.style, display_list, |