mirror of
https://github.com/servo/servo.git
synced 2025-08-03 04:30:10 +01:00
Add Servo_StyleSet_GetComputedValuesByAddingAnimation FFI.
Add an FFI to create a temporary ServoStyleContext with the animation value. We need this because we calculate the Cumulative change hints to check if we can ignore this animation segment.
This commit is contained in:
parent
4c538b642e
commit
aa72970f0a
3 changed files with 117 additions and 27 deletions
|
@ -3004,6 +3004,19 @@ extern "C" {
|
|||
CSSPseudoElementType)
|
||||
-> ServoStyleContextStrong;
|
||||
}
|
||||
extern "C" {
|
||||
pub fn Servo_StyleSet_GetComputedValuesByAddingAnimation(set:
|
||||
RawServoStyleSetBorrowed,
|
||||
element:
|
||||
RawGeckoElementBorrowed,
|
||||
existing_style:
|
||||
ServoStyleContextBorrowed,
|
||||
snapshots:
|
||||
*const ServoElementSnapshotTable,
|
||||
animation:
|
||||
RawServoAnimationValueBorrowed)
|
||||
-> ServoStyleContextStrong;
|
||||
}
|
||||
extern "C" {
|
||||
pub fn Servo_SerializeFontValueForCanvas(declarations:
|
||||
RawServoDeclarationBlockBorrowed,
|
||||
|
|
|
@ -446,6 +446,25 @@ impl RuleTree {
|
|||
let rule = self.insert_ordered_rules_from(last.parent().unwrap().clone(), children.drain().rev());
|
||||
rule
|
||||
}
|
||||
|
||||
/// Returns new rule node by adding animation rules at transition level.
|
||||
/// The additional rules must be appropriate for the transition
|
||||
/// level of the cascade, which is the highest level of the cascade.
|
||||
/// (This is the case for one current caller, the cover rule used
|
||||
/// for CSS transitions.)
|
||||
pub fn add_animation_rules_at_transition_level(
|
||||
&self,
|
||||
path: &StrongRuleNode,
|
||||
pdb: Arc<Locked<PropertyDeclarationBlock>>,
|
||||
guards: &StylesheetGuards,
|
||||
) -> StrongRuleNode {
|
||||
let mut dummy = false;
|
||||
self.update_rule_at_level(CascadeLevel::Transitions,
|
||||
Some(pdb.borrow_arc()),
|
||||
path,
|
||||
guards,
|
||||
&mut dummy).expect("Should return a valid rule node")
|
||||
}
|
||||
}
|
||||
|
||||
/// The number of RuleNodes added to the free list before we will consider
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue