mirror of
https://github.com/servo/servo.git
synced 2025-08-03 20:50:07 +01:00
Drop style data from descendants on display:none.
MozReview-Commit-ID: 8ls43oAGWRg
This commit is contained in:
parent
1a5e2b4673
commit
fb70ee2c0c
8 changed files with 66 additions and 18 deletions
|
@ -952,6 +952,7 @@ pub trait LayoutNodeHelpers {
|
|||
|
||||
unsafe fn get_style_and_layout_data(&self) -> Option<OpaqueStyleAndLayoutData>;
|
||||
unsafe fn init_style_and_layout_data(&self, OpaqueStyleAndLayoutData);
|
||||
unsafe fn take_style_and_layout_data(&self) -> OpaqueStyleAndLayoutData;
|
||||
|
||||
fn text_content(&self) -> String;
|
||||
fn selection(&self) -> Option<Range<usize>>;
|
||||
|
@ -1051,6 +1052,14 @@ impl LayoutNodeHelpers for LayoutJS<Node> {
|
|||
(*self.unsafe_get()).style_and_layout_data.set(Some(val));
|
||||
}
|
||||
|
||||
#[inline]
|
||||
#[allow(unsafe_code)]
|
||||
unsafe fn take_style_and_layout_data(&self) -> OpaqueStyleAndLayoutData {
|
||||
let val = (*self.unsafe_get()).style_and_layout_data.get().unwrap();
|
||||
(*self.unsafe_get()).style_and_layout_data.set(None);
|
||||
val
|
||||
}
|
||||
|
||||
#[allow(unsafe_code)]
|
||||
fn text_content(&self) -> String {
|
||||
if let Some(text) = self.downcast::<Text>() {
|
||||
|
|
|
@ -256,6 +256,10 @@ impl<'ln> LayoutNode for ServoLayoutNode<'ln> {
|
|||
self.get_jsmanaged().init_style_and_layout_data(data);
|
||||
}
|
||||
|
||||
unsafe fn take_style_and_layout_data(&self) -> OpaqueStyleAndLayoutData {
|
||||
self.get_jsmanaged().take_style_and_layout_data()
|
||||
}
|
||||
|
||||
fn has_changed(&self) -> bool {
|
||||
unsafe { self.node.get_flag(HAS_CHANGED) }
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue