mirror of
https://github.com/servo/servo.git
synced 2025-08-06 06:00:15 +01:00
No longer consider window size when scrolling
Now that scrolling roots are properly sized, we can simply look at the scrolling root layer size when deciding the extents of layer scrolling. This simplifies things a bit and further codifies the current model of scrolling root + mask_to_bounds.
This commit is contained in:
parent
bae5440689
commit
31a6270d52
3 changed files with 14 additions and 24 deletions
|
@ -564,13 +564,11 @@ impl IOCompositor {
|
|||
layer_id: LayerId,
|
||||
origin: TypedPoint2D<LayerPixel, f32>)
|
||||
-> bool {
|
||||
let window_size = self.window_size.as_f32() / self.scene.scale;
|
||||
match self.find_layer_with_pipeline_and_layer_id(pipeline_id, layer_id) {
|
||||
Some(ref layer) => {
|
||||
if layer.extra_data.borrow().wants_scroll_events == WantsScrollEvents {
|
||||
events::clamp_scroll_offset_and_scroll_layer(layer.clone(),
|
||||
TypedPoint2D(0f32, 0f32) - origin,
|
||||
window_size);
|
||||
TypedPoint2D(0f32, 0f32) - origin);
|
||||
}
|
||||
true
|
||||
}
|
||||
|
@ -757,15 +755,13 @@ impl IOCompositor {
|
|||
cursor: TypedPoint2D<DevicePixel, i32>) {
|
||||
let delta = delta / self.scene.scale;
|
||||
let cursor = cursor.as_f32() / self.scene.scale;
|
||||
let window_size = self.window_size.as_f32() / self.scene.scale;
|
||||
|
||||
let mut scroll = false;
|
||||
match self.scene.root {
|
||||
Some(ref mut layer) => {
|
||||
scroll = events::handle_scroll_event(layer.clone(),
|
||||
delta,
|
||||
cursor,
|
||||
window_size) == ScrollPositionChanged;
|
||||
cursor) == ScrollPositionChanged;
|
||||
}
|
||||
None => { }
|
||||
}
|
||||
|
@ -819,13 +815,11 @@ impl IOCompositor {
|
|||
window_size.height.get() * (viewport_zoom.inv() - old_viewport_zoom.inv()).get() * 0.5);
|
||||
|
||||
let cursor = TypedPoint2D(-1f32, -1f32); // Make sure this hits the base layer.
|
||||
let window_size = self.window_size.as_f32() / self.scene.scale;
|
||||
match self.scene.root {
|
||||
Some(ref mut layer) => {
|
||||
events::handle_scroll_event(layer.clone(),
|
||||
page_delta,
|
||||
cursor,
|
||||
window_size);
|
||||
cursor);
|
||||
}
|
||||
None => { }
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue