Bug 1341372 - Part 3: Factor out need_update_animations.

We will add another function, needs_update_transitions, to check if we need
to update transitions, so factor this out.

MozReview-Commit-ID: 5LYkyi4aDri
This commit is contained in:
Boris Chiou 2017-04-04 17:54:30 +08:00
parent b1476f1f81
commit 145e1b6bff

View file

@ -525,21 +525,15 @@ trait PrivateMatchMethods: TElement {
} }
#[cfg(feature = "gecko")] #[cfg(feature = "gecko")]
fn process_animations(&self, fn needs_update_animations(&self,
context: &mut StyleContext<Self>, old_values: &Option<Arc<ComputedValues>>,
old_values: &mut Option<Arc<ComputedValues>>, new_values: &Arc<ComputedValues>,
new_values: &mut Arc<ComputedValues>, pseudo: Option<&PseudoElement>) -> bool {
pseudo: Option<&PseudoElement>) {
use context::{CSS_ANIMATIONS, EFFECT_PROPERTIES};
use context::UpdateAnimationsTasks;
let ref new_box_style = new_values.get_box(); let ref new_box_style = new_values.get_box();
let has_new_animation_style = new_box_style.animation_name_count() >= 1 && let has_new_animation_style = new_box_style.animation_name_count() >= 1 &&
new_box_style.animation_name_at(0).0.len() != 0; new_box_style.animation_name_at(0).0.len() != 0;
let has_animations = self.has_css_animations(pseudo); let has_animations = self.has_css_animations(pseudo);
let mut tasks = UpdateAnimationsTasks::empty();
let needs_update_animations =
old_values.as_ref().map_or(has_new_animation_style, |ref old| { old_values.as_ref().map_or(has_new_animation_style, |ref old| {
let ref old_box_style = old.get_box(); let ref old_box_style = old.get_box();
let old_display_style = old_box_style.clone_display(); let old_display_style = old_box_style.clone_display();
@ -552,8 +546,20 @@ trait PrivateMatchMethods: TElement {
(old_display_style != display::T::none && (old_display_style != display::T::none &&
new_display_style == display::T::none && new_display_style == display::T::none &&
has_animations) has_animations)
}); })
if needs_update_animations { }
#[cfg(feature = "gecko")]
fn process_animations(&self,
context: &mut StyleContext<Self>,
old_values: &mut Option<Arc<ComputedValues>>,
new_values: &mut Arc<ComputedValues>,
pseudo: Option<&PseudoElement>) {
use context::{CSS_ANIMATIONS, EFFECT_PROPERTIES};
use context::UpdateAnimationsTasks;
let mut tasks = UpdateAnimationsTasks::empty();
if self.needs_update_animations(old_values, new_values, pseudo) {
tasks.insert(CSS_ANIMATIONS); tasks.insert(CSS_ANIMATIONS);
} }
if self.has_animations(pseudo) { if self.has_animations(pseudo) {