mirror of
https://github.com/servo/servo.git
synced 2025-08-06 22:15:33 +01:00
compositor: Request reflow when doing a page zooming (#38166)
Request a reflow when doing page zoom and only modify the scaling of the WebView scene after the first root pipeline display list with the new zoom is ready. In addition: - store zoom limits in `Scale` types - send `ViewportDetails` along with the display list so that we can detect when the root pipeline scale is ready. Testing: This is quite hard to test as it requires verification that contents are zoomed appropriately at the right time. Fixes: #38091. Signed-off-by: Martin Robinson <mrobinson@igalia.com>
This commit is contained in:
parent
3d2f0d1be5
commit
8d5faa9bf9
10 changed files with 111 additions and 44 deletions
|
@ -65,7 +65,11 @@ impl<'a> BackgroundPainter<'a> {
|
|||
if &BackgroundAttachment::Fixed ==
|
||||
get_cyclic(&background.background_attachment.0, layer_index)
|
||||
{
|
||||
return builder.compositor_info.viewport_size.into();
|
||||
return builder
|
||||
.compositor_info
|
||||
.viewport_details
|
||||
.layout_size()
|
||||
.into();
|
||||
}
|
||||
|
||||
match get_cyclic(&background.background_clip.0, layer_index) {
|
||||
|
@ -149,7 +153,11 @@ impl<'a> BackgroundPainter<'a> {
|
|||
Origin::PaddingBox => *fragment_builder.padding_rect(),
|
||||
Origin::BorderBox => fragment_builder.border_rect,
|
||||
},
|
||||
BackgroundAttachment::Fixed => builder.compositor_info.viewport_size.into(),
|
||||
BackgroundAttachment::Fixed => builder
|
||||
.compositor_info
|
||||
.viewport_details
|
||||
.layout_size()
|
||||
.into(),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue