mirror of
https://github.com/servo/servo.git
synced 2025-08-07 14:35:33 +01:00
style: Check transitions per longhand to know which transitions to keep.
This fixes the fishy TransitionProperty mapping which I complained about in my previous refactor. Turns out that those properties could only be longhands, and thus the expansion we did before that (and which I removed) was correct. This fixes the bug by moving back to the previous correct behavior but using the correct types. The optimization to avoid creating a HashSet if we're transitioning all properties or had no existing transition is removed since now we're creating a LonghandIdSet, which is cheap, and that was only a performance optimization.
This commit is contained in:
parent
f2879a568d
commit
c60b8288bc
2 changed files with 28 additions and 30 deletions
|
@ -19,7 +19,6 @@ use media_queries::Device;
|
|||
use properties::{AnimationRules, ComputedValues, PropertyDeclarationBlock};
|
||||
#[cfg(feature = "gecko")] use properties::LonghandId;
|
||||
#[cfg(feature = "gecko")] use properties::animated_properties::AnimationValue;
|
||||
#[cfg(feature = "gecko")] use properties::animated_properties::TransitionProperty;
|
||||
use rule_tree::CascadeLevel;
|
||||
use selector_parser::{AttrValue, ElementExt};
|
||||
use selector_parser::{PseudoClassStringArg, PseudoElement};
|
||||
|
@ -651,7 +650,7 @@ pub trait TElement : Eq + PartialEq + Debug + Hash + Sized + Copy + Clone +
|
|||
/// Gets the current existing CSS transitions, by |property, end value| pairs in a FnvHashMap.
|
||||
#[cfg(feature = "gecko")]
|
||||
fn get_css_transitions_info(&self)
|
||||
-> FnvHashMap<TransitionProperty, Arc<AnimationValue>>;
|
||||
-> FnvHashMap<LonghandId, Arc<AnimationValue>>;
|
||||
|
||||
/// Does a rough (and cheap) check for whether or not transitions might need to be updated that
|
||||
/// will quickly return false for the common case of no transitions specified or running. If
|
||||
|
@ -684,7 +683,7 @@ pub trait TElement : Eq + PartialEq + Debug + Hash + Sized + Copy + Clone +
|
|||
combined_duration: f32,
|
||||
before_change_style: &ComputedValues,
|
||||
after_change_style: &ComputedValues,
|
||||
existing_transitions: &FnvHashMap<TransitionProperty, Arc<AnimationValue>>
|
||||
existing_transitions: &FnvHashMap<LonghandId, Arc<AnimationValue>>
|
||||
) -> bool;
|
||||
|
||||
/// Returns the value of the `xml:lang=""` attribute (or, if appropriate,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue