mirror of
https://github.com/servo/servo.git
synced 2025-08-03 20:50:07 +01:00
style: Not all computed value flags are really inherited.
This fixes the fishiness I noticed in: https://bugzilla.mozilla.org/show_bug.cgi?id=1407832
This commit is contained in:
parent
8b366a7441
commit
b73b5b581b
3 changed files with 11 additions and 3 deletions
|
@ -360,8 +360,8 @@ trait PrivateMatchMethods: TElement {
|
||||||
debug!(" > style difference: {:?}", difference);
|
debug!(" > style difference: {:?}", difference);
|
||||||
|
|
||||||
// We need to cascade the children in order to ensure the correct
|
// We need to cascade the children in order to ensure the correct
|
||||||
// propagation of computed value flags.
|
// propagation of inherited computed value flags.
|
||||||
if old_values.flags != new_values.flags {
|
if old_values.flags.inherited() != new_values.flags.inherited() {
|
||||||
debug!(" > flags changed: {:?} != {:?}", old_values.flags, new_values.flags);
|
debug!(" > flags changed: {:?} != {:?}", old_values.flags, new_values.flags);
|
||||||
return ChildCascadeRequirement::MustCascadeChildren;
|
return ChildCascadeRequirement::MustCascadeChildren;
|
||||||
}
|
}
|
||||||
|
|
|
@ -64,3 +64,11 @@ bitflags! {
|
||||||
const IS_STYLE_IF_VISITED = 1 << 9,
|
const IS_STYLE_IF_VISITED = 1 << 9,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl ComputedValueFlags {
|
||||||
|
/// Returns the flags that are inherited.
|
||||||
|
#[inline]
|
||||||
|
pub fn inherited(self) -> Self {
|
||||||
|
self & !(INHERITS_DISPLAY | INHERITS_CONTENT | INHERITS_RESET_STYLE)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -2872,7 +2872,7 @@ impl<'a> StyleBuilder<'a> {
|
||||||
/* rules = */ None,
|
/* rules = */ None,
|
||||||
parent.custom_properties().cloned(),
|
parent.custom_properties().cloned(),
|
||||||
parent.writing_mode,
|
parent.writing_mode,
|
||||||
parent.flags,
|
parent.flags.inherited(),
|
||||||
visited_style,
|
visited_style,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue