Fix macos window theme calculation

This commit is contained in:
Gregory Schier
2025-07-05 06:37:02 -07:00
parent a0e5e60803
commit 9e98b5f905
5 changed files with 76 additions and 86 deletions

View File

@@ -1,4 +1,5 @@
use tauri::{Runtime, Window, command};
use log::warn;
use tauri::{command, Runtime, Window};
#[command]
pub(crate) fn set_title<R: Runtime>(window: Window<R>, title: &str) {
@@ -23,7 +24,7 @@ pub(crate) fn set_theme<R: Runtime>(window: Window<R>, bg_color: &str) {
crate::mac::update_window_theme(window, color);
}
Err(err) => {
log::warn!("Failed to parse background color '{}': {}", bg_color, err)
warn!("Failed to parse background color '{}': {}", bg_color, err)
}
}
}

View File

@@ -40,7 +40,7 @@ pub(crate) fn update_window_theme<R: Runtime>(window: Window<R>, color: Color) {
NSAppearance, NSAppearanceNameVibrantDark, NSAppearanceNameVibrantLight, NSWindow,
};
let brightness = (color.r as u64 + color.g as u64 + color.b as u64) / 3;
let brightness = (color.r as f64 + color.g as f64 + color.b as f64) / 3.0;
let label = window.label().to_string();
unsafe {
@@ -49,7 +49,7 @@ pub(crate) fn update_window_theme<R: Runtime>(window: Window<R>, color: Color) {
let _ = window.run_on_main_thread(move || {
let handle = window_handle;
let selected_appearance = if brightness >= 128 {
let selected_appearance = if brightness >= 0.5 {
NSAppearance(NSAppearanceNameVibrantLight)
} else {
NSAppearance(NSAppearanceNameVibrantDark)