mirror of
https://github.com/servo/servo.git
synced 2025-08-06 22:15:33 +01:00
Refactor self.recomposite value update
This commit is contained in:
parent
755a158131
commit
b065f21c1c
1 changed files with 17 additions and 19 deletions
|
@ -333,28 +333,22 @@ impl IOCompositor {
|
||||||
id: PipelineId,
|
id: PipelineId,
|
||||||
new_size: Size2D<f32>,
|
new_size: Size2D<f32>,
|
||||||
epoch: Epoch) {
|
epoch: Epoch) {
|
||||||
let ask: bool = match self.compositor_layer {
|
let (ask, move): (bool, bool) = match self.compositor_layer {
|
||||||
Some(ref mut layer) => {
|
Some(ref mut layer) => {
|
||||||
let window_size = &self.window_size;
|
let window_size = &self.window_size;
|
||||||
let world_zoom = self.world_zoom;
|
let world_zoom = self.world_zoom;
|
||||||
let page_window = Size2D(window_size.width as f32 / world_zoom,
|
let page_window = Size2D(window_size.width as f32 / world_zoom,
|
||||||
window_size.height as f32 / world_zoom);
|
window_size.height as f32 / world_zoom);
|
||||||
assert!(layer.resize(id, new_size, page_window, epoch));
|
assert!(layer.resize(id, new_size, page_window, epoch));
|
||||||
match self.fragment_point.take() {
|
let move = self.fragment_point.take().map_default(false, |point| layer.move(point, page_window));
|
||||||
Some(point) => {
|
|
||||||
let recomposite = layer.move(point, page_window) | self.recomposite;
|
(true, move)
|
||||||
self.recomposite = recomposite;
|
|
||||||
},
|
|
||||||
None => {}
|
|
||||||
}
|
|
||||||
true
|
|
||||||
}
|
|
||||||
None => {
|
|
||||||
false
|
|
||||||
}
|
}
|
||||||
|
None => (false, false)
|
||||||
};
|
};
|
||||||
|
|
||||||
if ask {
|
if ask {
|
||||||
|
self.recomposite_if(move);
|
||||||
self.ask_for_tiles();
|
self.ask_for_tiles();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -442,21 +436,20 @@ impl IOCompositor {
|
||||||
let world_zoom = self.world_zoom;
|
let world_zoom = self.world_zoom;
|
||||||
let page_window = Size2D(self.window_size.width as f32 / world_zoom,
|
let page_window = Size2D(self.window_size.width as f32 / world_zoom,
|
||||||
self.window_size.height as f32 / world_zoom);
|
self.window_size.height as f32 / world_zoom);
|
||||||
let ask: bool = match self.compositor_layer {
|
let (ask, move): (bool, bool) = match self.compositor_layer {
|
||||||
Some(ref mut layer) if layer.pipeline.id == id && !layer.hidden => {
|
Some(ref mut layer) if layer.pipeline.id == id && !layer.hidden => {
|
||||||
let recomposite = layer.move(point, page_window) | self.recomposite;
|
|
||||||
self.recomposite = recomposite;
|
|
||||||
|
|
||||||
true
|
(true, layer.move(point, page_window))
|
||||||
}
|
}
|
||||||
Some(_) | None => {
|
Some(_) | None => {
|
||||||
self.fragment_point = Some(point);
|
self.fragment_point = Some(point);
|
||||||
|
|
||||||
false
|
(false, false)
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
if ask {
|
if ask {
|
||||||
|
self.recomposite_if(move);
|
||||||
self.ask_for_tiles();
|
self.ask_for_tiles();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -548,10 +541,11 @@ impl IOCompositor {
|
||||||
cursor.y as f32 / world_zoom);
|
cursor.y as f32 / world_zoom);
|
||||||
let page_window = Size2D(self.window_size.width as f32 / world_zoom,
|
let page_window = Size2D(self.window_size.width as f32 / world_zoom,
|
||||||
self.window_size.height as f32 / world_zoom);
|
self.window_size.height as f32 / world_zoom);
|
||||||
|
let mut scroll = false;
|
||||||
for layer in self.compositor_layer.mut_iter() {
|
for layer in self.compositor_layer.mut_iter() {
|
||||||
let recomposite = layer.scroll(page_delta, page_cursor, page_window) || self.recomposite;
|
scroll = layer.scroll(page_delta, page_cursor, page_window) || scroll;
|
||||||
self.recomposite = recomposite;
|
|
||||||
}
|
}
|
||||||
|
self.recomposite_if(scroll);
|
||||||
self.ask_for_tiles();
|
self.ask_for_tiles();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -663,4 +657,8 @@ impl IOCompositor {
|
||||||
self.done = true;
|
self.done = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn recomposite_if(&mut self, result: bool) {
|
||||||
|
self.recomposite = result || self.recomposite;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue