From 5ba2e874b19c4de8be87644529747496519ac761 Mon Sep 17 00:00:00 2001 From: Hiroyuki Ikezoe Date: Wed, 21 Feb 2018 19:33:59 +0900 Subject: [PATCH] Factor out a new function to check display property is changed from 'none' to other --- components/style/matching.rs | 9 +-------- components/style/properties/gecko.mako.rs | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/components/style/matching.rs b/components/style/matching.rs index 89b60c9905a..82db5ded7ae 100644 --- a/components/style/matching.rs +++ b/components/style/matching.rs @@ -176,14 +176,7 @@ trait PrivateMatchMethods: TElement { return; } - let display_changed_from_none = old_values.map_or(false, |old| { - let old_display_style = old.get_box().clone_display(); - let new_display_style = new_values.get_box().clone_display(); - old_display_style == Display::None && - new_display_style != Display::None - }); - - if display_changed_from_none { + if new_values.is_display_property_changed_from_none(old_values) { // When display value is changed from none to other, we need to // traverse descendant elements in a subsequent normal // traversal (we can't traverse them in this animation-only restyle diff --git a/components/style/properties/gecko.mako.rs b/components/style/properties/gecko.mako.rs index 11b8ac5210a..aea141323ce 100644 --- a/components/style/properties/gecko.mako.rs +++ b/components/style/properties/gecko.mako.rs @@ -144,6 +144,22 @@ impl ComputedValues { return our_type == CSSPseudoElementType_InheritingAnonBox || our_type == CSSPseudoElementType::NonInheritingAnonBox; } + + /// Returns true if the display property is changed from 'none' to others. + pub fn is_display_property_changed_from_none( + &self, + old_values: Option<<&ComputedValues> + ) -> bool { + use properties::longhands::display::computed_value::T as Display; + + old_values.map_or(false, |old| { + let old_display_style = old.get_box().clone_display(); + let new_display_style = self.get_box().clone_display(); + old_display_style == Display::None && + new_display_style != Display::None + }) + } + } impl Drop for ComputedValues {