servo/ports/servoshell/desktop
Martin Robinson c6dc7c83a8
libservo: Make zooming and HiDPI scaling work per-WebView (#36419)
libservo: Make zooming and HiDPI scaling work per-`WebView`

This change moves all zooming and HiDPI scaling to work per-`WebView` in
both libservo and Compositor. This means that you can pinch zoom one
`WebView` and it should now work independently of other `WebView`s.
This is accomplished by making each `WebView` in the WebRender scene
have its own scaling reference frame.

All WebViews are now expected to manage their HiDPI scaling factor and
this can be set independently of other WebViews. Perhaps in the future
this will become a Servo-wide setting.

This allows full removal of the `WindowMethods` trait from Servo.

Testing: There are not yet any tests for the WebView API, but I hope
to add those soon.

Co-authored-by: Shubham Gupta <shubham13297@gmail.com>
Signed-off-by: Martin Robinson <mrobinson@igalia.com>

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
Co-authored-by: Shubham Gupta <shubham13297@gmail.com>
2025-04-14 12:01:49 +00:00
..
protocols Update rustfmt to the 2024 style edition (#35764) 2025-03-03 11:26:53 +00:00
accelerated_gl_media.rs Update rustfmt to the 2024 style edition (#35764) 2025-03-03 11:26:53 +00:00
app.rs libservo: Make zooming and HiDPI scaling work per-WebView (#36419) 2025-04-14 12:01:49 +00:00
app_state.rs libservo: Make zooming and HiDPI scaling work per-WebView (#36419) 2025-04-14 12:01:49 +00:00
cli.rs Update rustfmt to the 2024 style edition (#35764) 2025-03-03 11:26:53 +00:00
dialog.rs Support single-value <select> elements (#35684) 2025-04-03 12:11:55 +00:00
egui_glue.rs Update rustfmt to the 2024 style edition (#35764) 2025-03-03 11:26:53 +00:00
embedder.rs libservo: Remove a couple EmbedderMethods (#36276) 2025-04-01 22:59:50 +00:00
events_loop.rs libservo: Move animation tracking from WindowMethods to delegates (#36400) 2025-04-09 19:41:53 +00:00
gamepad.rs libservo: Expose a single InputEvent type and pass it to script (#35430) 2025-02-12 17:07:15 +00:00
geometry.rs Use webrender_api::units::DevicePixel rather than style_traits::DevicePixel unless interfacing with Stylo (#34353) 2024-11-25 23:42:04 +00:00
headed_window.rs libservo: Make zooming and HiDPI scaling work per-WebView (#36419) 2025-04-14 12:01:49 +00:00
headless_window.rs libservo: Make zooming and HiDPI scaling work per-WebView (#36419) 2025-04-14 12:01:49 +00:00
keyutils.rs servoshell: Clean up keyboard event conversion a little (#32564) 2024-06-19 19:38:56 +00:00
minibrowser.rs Update rustfmt to the 2024 style edition (#35764) 2025-03-03 11:26:53 +00:00
mod.rs libservo: Move GL acclerated media setup out of RenderingContext and simplify it (#35553) 2025-02-20 13:52:18 +00:00
tracing.rs servoshell: Port desktop servoshell to use delegate API (#35284) 2025-02-06 07:33:31 +00:00
window_trait.rs libservo: Make zooming and HiDPI scaling work per-WebView (#36419) 2025-04-14 12:01:49 +00:00