mirror of
https://github.com/servo/servo.git
synced 2025-08-06 14:10:11 +01:00
Introduce StylingMode and deprecate explicit dirtiness.
MozReview-Commit-ID: 5tF075EJKBa
This commit is contained in:
parent
8bd7978980
commit
05c1f1e016
11 changed files with 204 additions and 116 deletions
|
@ -115,14 +115,14 @@ impl RestyleData {
|
|||
#[derive(Debug)]
|
||||
pub struct NodeData {
|
||||
styles: NodeDataStyles,
|
||||
pub restyle: Option<RestyleData>,
|
||||
pub restyle_data: Option<RestyleData>,
|
||||
}
|
||||
|
||||
impl NodeData {
|
||||
pub fn new() -> Self {
|
||||
NodeData {
|
||||
styles: NodeDataStyles::Uninitialized,
|
||||
restyle: None,
|
||||
restyle_data: None,
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -175,25 +175,24 @@ impl NodeData {
|
|||
self.styles = match mem::replace(&mut self.styles, Uninitialized) {
|
||||
Uninitialized => Previous(f()),
|
||||
Current(x) => Previous(Some(x)),
|
||||
_ => panic!("Already have previous styles"),
|
||||
Previous(x) => Previous(x),
|
||||
};
|
||||
}
|
||||
|
||||
// FIXME(bholley): Called in future patches.
|
||||
pub fn ensure_restyle_data(&mut self) {
|
||||
if self.restyle.is_none() {
|
||||
self.restyle = Some(RestyleData::new());
|
||||
if self.restyle_data.is_none() {
|
||||
self.restyle_data = Some(RestyleData::new());
|
||||
}
|
||||
}
|
||||
|
||||
pub fn style_text_node(&mut self, style: Arc<ComputedValues>) {
|
||||
debug_assert!(self.restyle.is_none());
|
||||
self.styles = NodeDataStyles::Current(NodeStyles::new(style));
|
||||
self.restyle_data = None;
|
||||
}
|
||||
|
||||
pub fn finish_styling(&mut self, styles: NodeStyles) {
|
||||
debug_assert!(self.styles.is_previous());
|
||||
self.styles = NodeDataStyles::Current(styles);
|
||||
self.restyle = None;
|
||||
self.restyle_data = None;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue