mirror of
https://github.com/servo/servo.git
synced 2025-08-06 14:10:11 +01:00
Propagate dirty bits after invalidation if needed.
This commit is contained in:
parent
c98b362e65
commit
22ace048cb
3 changed files with 73 additions and 20 deletions
|
@ -3719,6 +3719,17 @@ pub extern "C" fn Servo_ProcessInvalidations(set: RawServoStyleSetBorrowed,
|
|||
let mut data = data.as_mut().map(|d| &mut **d);
|
||||
|
||||
if let Some(ref mut data) = data {
|
||||
data.invalidate_style_if_needed(element, &shared_style_context, None);
|
||||
let result = data.invalidate_style_if_needed(element, &shared_style_context, None);
|
||||
if result.has_invalidated_siblings() {
|
||||
let parent = element.traversal_parent().expect("How could we invalidate siblings without a common parent?");
|
||||
unsafe {
|
||||
parent.set_dirty_descendants();
|
||||
bindings::Gecko_NoteDirtySubtreeForInvalidation(parent.0);
|
||||
}
|
||||
} else if result.has_invalidated_descendants() {
|
||||
unsafe { bindings::Gecko_NoteDirtySubtreeForInvalidation(element.0) };
|
||||
} else if result.has_invalidated_self() {
|
||||
unsafe { bindings::Gecko_NoteDirtyElement(element.0) };
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue