From ffa9ee3f6157754f584257e773b5133641a10c09 Mon Sep 17 00:00:00 2001 From: Wei-Cheng Pan Date: Wed, 6 Sep 2017 15:40:54 +0800 Subject: [PATCH] Add a function to find out if a node has any ancestor that is pending for restyling. --- ports/geckolib/glue.rs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/ports/geckolib/glue.rs b/ports/geckolib/glue.rs index 3241e32bee1..e13fe3b64d2 100644 --- a/ports/geckolib/glue.rs +++ b/ports/geckolib/glue.rs @@ -3783,3 +3783,17 @@ pub extern "C" fn Servo_ProcessInvalidations(set: RawServoStyleSetBorrowed, } } } + +#[no_mangle] +pub extern "C" fn Servo_HasPendingRestyleAncestor(element: RawGeckoElementBorrowed) -> bool { + let mut element = Some(GeckoElement(element)); + while let Some(e) = element { + if let Some(data) = e.borrow_data() { + if data.restyle.hint.has_non_animation_invalidations() { + return true; + } + } + element = e.traversal_parent(); + } + false +}