mirror of
https://github.com/servo/servo.git
synced 2025-08-06 06:00:15 +01:00
Auto merge of #18893 - emilio:bye-can-be-fragmented, r=SimonSapin
style: Remove TNode::set_can_be_fragmented and TNode::can_be_fragmented. Replace them instead by a computed value flag, the same way as the IS_IN_DISPLAY_NONE_SUBTREE flag works. <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/18893) <!-- Reviewable:end -->
This commit is contained in:
commit
83a8891bd4
14 changed files with 60 additions and 84 deletions
|
@ -62,6 +62,11 @@ bitflags! {
|
|||
|
||||
/// A flag to mark a style which is a visited style.
|
||||
const IS_STYLE_IF_VISITED = 1 << 9;
|
||||
|
||||
/// Whether the style or any of the ancestors has a multicol style.
|
||||
///
|
||||
/// Only used in Servo.
|
||||
const CAN_BE_FRAGMENTED = 1 << 10;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -300,10 +300,6 @@ impl ComputedValuesInner {
|
|||
!self.get_box().gecko.mBinding.mRawPtr.is_null()
|
||||
}
|
||||
|
||||
// FIXME(bholley): Implement this properly.
|
||||
#[inline]
|
||||
pub fn is_multicol(&self) -> bool { false }
|
||||
|
||||
pub fn to_declaration_block(&self, property: PropertyDeclarationId) -> PropertyDeclarationBlock {
|
||||
let value = match property {
|
||||
% for prop in data.longhands:
|
||||
|
|
|
@ -2058,6 +2058,18 @@ pub mod style_structs {
|
|||
.take(self.transition_property_count())
|
||||
.any(|t| t.seconds() > 0.)
|
||||
}
|
||||
% elif style_struct.name == "Column":
|
||||
/// Whether this is a multicol style.
|
||||
#[cfg(feature = "servo")]
|
||||
pub fn is_multicol(&self) -> bool {
|
||||
match self.column_width {
|
||||
Either::First(_width) => true,
|
||||
Either::Second(_auto) => match self.column_count {
|
||||
Either::First(_n) => true,
|
||||
Either::Second(_auto) => false,
|
||||
}
|
||||
}
|
||||
}
|
||||
% endif
|
||||
}
|
||||
|
||||
|
@ -2276,17 +2288,16 @@ impl ComputedValuesInner {
|
|||
}
|
||||
}
|
||||
|
||||
/// Whether the current style or any of its ancestors is multicolumn.
|
||||
#[inline]
|
||||
pub fn can_be_fragmented(&self) -> bool {
|
||||
self.flags.contains(ComputedValueFlags::CAN_BE_FRAGMENTED)
|
||||
}
|
||||
|
||||
/// Whether the current style is multicolumn.
|
||||
#[inline]
|
||||
pub fn is_multicol(&self) -> bool {
|
||||
let style = self.get_column();
|
||||
match style.column_width {
|
||||
Either::First(_width) => true,
|
||||
Either::Second(_auto) => match style.column_count {
|
||||
Either::First(_n) => true,
|
||||
Either::Second(_auto) => false,
|
||||
}
|
||||
}
|
||||
self.get_column().is_multicol()
|
||||
}
|
||||
|
||||
/// Resolves the currentColor keyword.
|
||||
|
@ -2761,16 +2772,16 @@ impl<'a> StyleBuilder<'a> {
|
|||
% endif
|
||||
|
||||
% if not property.style_struct.inherited:
|
||||
self.flags.insert(::properties::computed_value_flags::ComputedValueFlags::INHERITS_RESET_STYLE);
|
||||
self.flags.insert(ComputedValueFlags::INHERITS_RESET_STYLE);
|
||||
self.modified_reset = true;
|
||||
% endif
|
||||
|
||||
% if property.ident == "content":
|
||||
self.flags.insert(::properties::computed_value_flags::ComputedValueFlags::INHERITS_CONTENT);
|
||||
self.flags.insert(ComputedValueFlags::INHERITS_CONTENT);
|
||||
% endif
|
||||
|
||||
% if property.ident == "display":
|
||||
self.flags.insert(::properties::computed_value_flags::ComputedValueFlags::INHERITS_DISPLAY);
|
||||
self.flags.insert(ComputedValueFlags::INHERITS_DISPLAY);
|
||||
% endif
|
||||
|
||||
self.${property.style_struct.ident}.mutate()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue