Better plugin reloading and theme parsing

This commit is contained in:
Gregory Schier
2025-07-03 12:25:22 -07:00
parent 36bbb87a5e
commit 2a6f139d36
5 changed files with 17 additions and 16 deletions

22
src-tauri/Cargo.lock generated
View File

@@ -1121,6 +1121,15 @@ dependencies = [
"typenum",
]
[[package]]
name = "csscolorparser"
version = "0.7.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5fda6aace1fbef3aa217b27f4c8d7d071ef2a70a5ca51050b1f17d40299d3f16"
dependencies = [
"phf 0.11.3",
]
[[package]]
name = "cssparser"
version = "0.29.6"
@@ -1297,7 +1306,7 @@ dependencies = [
"libc",
"option-ext",
"redox_users",
"windows-sys 0.59.0",
"windows-sys 0.60.2",
]
[[package]]
@@ -2254,15 +2263,6 @@ version = "0.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
[[package]]
name = "hex_color"
version = "3.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d37f101bf4c633f7ca2e4b5e136050314503dd198e78e325ea602c327c484ef0"
dependencies = [
"rand 0.8.5",
]
[[package]]
name = "hkdf"
version = "0.12.4"
@@ -7989,7 +7989,7 @@ name = "yaak-mac-window"
version = "0.1.0"
dependencies = [
"cocoa",
"hex_color",
"csscolorparser",
"log",
"objc",
"rand 0.9.1",

View File

@@ -10,10 +10,10 @@ tauri-plugin = { workspace = true, features = ["build"] }
[target.'cfg(target_os = "macos")'.dependencies]
cocoa = "0.26.0"
hex_color = "3.0.0"
log = "0.4.27"
objc = "0.2.7"
rand = "0.9.0"
csscolorparser = "0.7.2"
[dependencies]
tauri = { workspace = true }

View File

@@ -18,7 +18,7 @@ pub(crate) fn set_title<R: Runtime>(window: Window<R>, title: &str) {
pub(crate) fn set_theme<R: Runtime>(window: Window<R>, bg_color: &str) {
#[cfg(target_os = "macos")]
{
match hex_color::HexColor::parse_rgb(bg_color.trim()) {
match csscolorparser::parse(bg_color.trim()) {
Ok(color) => {
crate::mac::update_window_theme(window, color);
}

View File

@@ -1,5 +1,5 @@
#![allow(deprecated)]
use hex_color::HexColor;
use csscolorparser::Color;
use objc::{msg_send, sel, sel_impl};
use tauri::{Emitter, Runtime, Window};
@@ -35,7 +35,7 @@ pub(crate) fn update_window_title<R: Runtime>(window: Window<R>, title: String)
}
}
pub(crate) fn update_window_theme<R: Runtime>(window: Window<R>, color: HexColor) {
pub(crate) fn update_window_theme<R: Runtime>(window: Window<R>, color: Color) {
use cocoa::appkit::{
NSAppearance, NSAppearanceNameVibrantDark, NSAppearanceNameVibrantLight, NSWindow,
};

View File

@@ -27,7 +27,8 @@ configureTheme().then(
// Listen for settings changes, the re-compute theme
listen<ModelPayload>('upserted_model', async (event) => {
if (event.payload.model.model !== 'settings') return;
const model = event.payload.model.model;
if (model !== 'settings' && model !== 'plugin') return;
await configureTheme();
}).catch(console.error);