mirror of
https://github.com/servo/servo.git
synced 2025-08-05 13:40:08 +01:00
stylo: Make Servo_TraverseSubtree return whether a post-traversal is required.
MozReview-Commit-ID: 8EWxdt0pZ6W
This commit is contained in:
parent
10994ea758
commit
57e1b25cbd
2 changed files with 7 additions and 2 deletions
|
@ -1476,7 +1476,7 @@ extern "C" {
|
|||
extern "C" {
|
||||
pub fn Servo_TraverseSubtree(root: RawGeckoElementBorrowed,
|
||||
set: RawServoStyleSetBorrowed,
|
||||
root_behavior: TraversalRootBehavior);
|
||||
root_behavior: TraversalRootBehavior) -> bool;
|
||||
}
|
||||
extern "C" {
|
||||
pub fn Servo_AssertTreeIsClean(root: RawGeckoElementBorrowed);
|
||||
|
|
|
@ -164,14 +164,19 @@ fn traverse_subtree(element: GeckoElement, raw_data: RawServoStyleSetBorrowed,
|
|||
}
|
||||
}
|
||||
|
||||
/// Traverses the subtree rooted at `root` for restyling. Returns whether a
|
||||
/// Gecko post-traversal (to perform lazy frame construction, or consume any
|
||||
/// RestyleData, or drop any ElementData) is required.
|
||||
#[no_mangle]
|
||||
pub extern "C" fn Servo_TraverseSubtree(root: RawGeckoElementBorrowed,
|
||||
raw_data: RawServoStyleSetBorrowed,
|
||||
behavior: structs::TraversalRootBehavior) -> () {
|
||||
behavior: structs::TraversalRootBehavior) -> bool {
|
||||
let element = GeckoElement(root);
|
||||
debug!("Servo_TraverseSubtree: {:?}", element);
|
||||
traverse_subtree(element, raw_data,
|
||||
behavior == structs::TraversalRootBehavior::UnstyledChildrenOnly);
|
||||
|
||||
element.has_dirty_descendants() || element.mutate_data().unwrap().has_restyle()
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue