mirror of
https://github.com/servo/servo.git
synced 2025-08-05 13:40:08 +01:00
style: Update animations when a pseudo-element had animations but no longer has, and has been re-framed in the meantime.
This is the easy fix. The hard fix (outlined in the comment) would be nice, but I don't think this bug alone justifies it. Differential Revision: https://phabricator.services.mozilla.com/D38184
This commit is contained in:
parent
59cf10d1b0
commit
137044a3db
2 changed files with 26 additions and 6 deletions
|
@ -240,16 +240,31 @@ trait PrivateMatchMethods: TElement {
|
|||
let new_box_style = new_style.get_box();
|
||||
let new_style_specifies_animations = new_box_style.specifies_animations();
|
||||
|
||||
let old_style = match old_style {
|
||||
Some(old) => old,
|
||||
None => return new_style_specifies_animations,
|
||||
};
|
||||
|
||||
let has_animations = self.has_css_animations();
|
||||
if !new_style_specifies_animations && !has_animations {
|
||||
return false;
|
||||
}
|
||||
|
||||
let old_style = match old_style {
|
||||
Some(old) => old,
|
||||
// If we have no old style but have animations, we may be a
|
||||
// pseudo-element which was re-created without style changes.
|
||||
//
|
||||
// This can happen when we reframe the pseudo-element without
|
||||
// restyling it (due to content insertion on a flex container or
|
||||
// such, for example). See bug 1564366.
|
||||
//
|
||||
// FIXME(emilio): The really right fix for this is keeping the
|
||||
// pseudo-element itself around on reframes, but that's a bit
|
||||
// harder. If we do that we can probably remove quite a lot of the
|
||||
// EffectSet complexity though, since right now it's stored on the
|
||||
// parent element for pseudo-elements given we need to keep it
|
||||
// around...
|
||||
None => {
|
||||
return new_style_specifies_animations || new_style.is_pseudo_style();
|
||||
}
|
||||
};
|
||||
|
||||
let old_box_style = old_style.get_box();
|
||||
|
||||
let keyframes_could_have_changed = context
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue