mirror of
https://github.com/servo/servo.git
synced 2025-08-05 05:30: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" {
|
extern "C" {
|
||||||
pub fn Servo_TraverseSubtree(root: RawGeckoElementBorrowed,
|
pub fn Servo_TraverseSubtree(root: RawGeckoElementBorrowed,
|
||||||
set: RawServoStyleSetBorrowed,
|
set: RawServoStyleSetBorrowed,
|
||||||
root_behavior: TraversalRootBehavior);
|
root_behavior: TraversalRootBehavior) -> bool;
|
||||||
}
|
}
|
||||||
extern "C" {
|
extern "C" {
|
||||||
pub fn Servo_AssertTreeIsClean(root: RawGeckoElementBorrowed);
|
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]
|
#[no_mangle]
|
||||||
pub extern "C" fn Servo_TraverseSubtree(root: RawGeckoElementBorrowed,
|
pub extern "C" fn Servo_TraverseSubtree(root: RawGeckoElementBorrowed,
|
||||||
raw_data: RawServoStyleSetBorrowed,
|
raw_data: RawServoStyleSetBorrowed,
|
||||||
behavior: structs::TraversalRootBehavior) -> () {
|
behavior: structs::TraversalRootBehavior) -> bool {
|
||||||
let element = GeckoElement(root);
|
let element = GeckoElement(root);
|
||||||
debug!("Servo_TraverseSubtree: {:?}", element);
|
debug!("Servo_TraverseSubtree: {:?}", element);
|
||||||
traverse_subtree(element, raw_data,
|
traverse_subtree(element, raw_data,
|
||||||
behavior == structs::TraversalRootBehavior::UnstyledChildrenOnly);
|
behavior == structs::TraversalRootBehavior::UnstyledChildrenOnly);
|
||||||
|
|
||||||
|
element.has_dirty_descendants() || element.mutate_data().unwrap().has_restyle()
|
||||||
}
|
}
|
||||||
|
|
||||||
#[no_mangle]
|
#[no_mangle]
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue