servoshell: Move initial_window_size and screen_size_override into ServoShellPreferences from Opts (#35407)

These settings just configure `servoshell` so should be in
`ServoShellPreferences` instead.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
This commit is contained in:
Martin Robinson 2025-02-10 21:48:48 +01:00 committed by GitHub
parent bea7a969f4
commit 118a813dba
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 32 additions and 42 deletions

View file

@ -15,6 +15,7 @@ use servo::webrender_api::units::{DeviceIntSize, DevicePixel};
use super::app_state::RunningAppState;
use crate::desktop::window_trait::WindowPortsMethods;
use crate::prefs::ServoShellPreferences;
pub struct Window {
animation_state: Cell<AnimationState>,
@ -27,20 +28,17 @@ pub struct Window {
impl Window {
#[allow(clippy::new_ret_no_self)]
pub fn new(
size: Size2D<u32, DeviceIndependentPixel>,
device_pixel_ratio_override: Option<f32>,
screen_size_override: Option<Size2D<u32, DeviceIndependentPixel>>,
) -> Rc<dyn WindowPortsMethods> {
pub fn new(servoshell_preferences: &ServoShellPreferences) -> Rc<dyn WindowPortsMethods> {
let device_pixel_ratio_override = servoshell_preferences.device_pixel_ratio_override;
let device_pixel_ratio_override: Option<Scale<f32, DeviceIndependentPixel, DevicePixel>> =
device_pixel_ratio_override.map(Scale::new);
let hidpi_factor = device_pixel_ratio_override.unwrap_or_else(Scale::identity);
let size = size.to_i32();
let size = servoshell_preferences.initial_window_size.to_i32();
let inner_size = Cell::new((size.to_f32() * hidpi_factor).to_i32());
let window_rect = Box2D::from_origin_and_size(Point2D::zero(), size);
let screen_size = screen_size_override.map_or_else(
let screen_size = servoshell_preferences.screen_size_override.map_or_else(
|| window_rect.size(),
|screen_size_override| screen_size_override.to_i32(),
);