in native/desktop-win32/src/win32/event_loop.rs [248:261]
fn on_settingchange(event_loop: &EventLoop, window: &Window, wparam: WPARAM, lparam: LPARAM) -> Option<LRESULT> {
// borrowed from https://github.com/microsoft/terminal/blob/73948072120beb51d355b3c74b5f774a6526b277/src/cascadia/WindowsTerminal/IslandWindow.cpp#L748
if wparam.0 == 0 && lparam.0 != 0 {
let param = unsafe { windows::core::PWSTR(lparam.0 as *mut u16).to_hstring() };
if ¶m == windows::core::h!("ImmersiveColorSet") {
let new_appearance = Appearance::get_current()
.inspect_err(|err| log::error!("failed to get current system appearance: {err}"))
.ok()?;
let event = SystemAppearanceChangeEvent { new_appearance };
event_loop.handle_event(window, event.into());
}
}
None
}