servoshell: Ensure that the theme is applied properly on startup (#37128)

Instead of only applying the theme when it changes, apply it to both
egui and all
newly created `WebView`s. 

Reference Zulip thread:
https://servo.zulipchat.com/#narrow/channel/437943-embedding/topic/Theme.20.28light.2Fdark.20mode.29.20support.20on.20initial.20page.20load/with/520082314

Testing: There are tests for servoshell currently, so all testing is
manual.
Fixes: #34913

Signed-off-by: Tony <legendmastertony@gmail.com>
This commit is contained in:
Tony 2025-05-26 23:09:04 +08:00 committed by GitHub
parent d3e57a513c
commit 7147e06b53
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 13 additions and 2 deletions

View file

@ -732,6 +732,13 @@ impl WindowPortsMethods for Window {
fn hide_ime(&self) {
self.winit_window.set_ime_allowed(false);
}
fn theme(&self) -> servo::Theme {
match self.winit_window.theme() {
Some(winit::window::Theme::Dark) => servo::Theme::Dark,
Some(winit::window::Theme::Light) | None => servo::Theme::Light,
}
}
}
fn winit_phase_to_touch_event_type(phase: TouchPhase) -> TouchEventType {