mirror of
https://github.com/mountain-loop/yaak.git
synced 2026-04-17 22:39:42 +02:00
Parse window title and theme better
This commit is contained in:
2
src-tauri/Cargo.lock
generated
2
src-tauri/Cargo.lock
generated
@@ -8136,7 +8136,7 @@ dependencies = [
|
|||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "yaak"
|
name = "yaak-app"
|
||||||
version = "0.0.0"
|
version = "0.0.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
use hex_color::HexColor;
|
use hex_color::HexColor;
|
||||||
|
use log::warn;
|
||||||
use objc::{msg_send, sel, sel_impl};
|
use objc::{msg_send, sel, sel_impl};
|
||||||
use rand::{distributions::Alphanumeric, Rng};
|
use rand::{distributions::Alphanumeric, Rng};
|
||||||
use tauri::{
|
use tauri::{
|
||||||
@@ -25,15 +26,35 @@ pub fn init<R: Runtime>() -> TauriPlugin<R> {
|
|||||||
|
|
||||||
let window_for_theme = window.clone();
|
let window_for_theme = window.clone();
|
||||||
let id1 = h.listen("yaak_bg_changed", move |ev| {
|
let id1 = h.listen("yaak_bg_changed", move |ev| {
|
||||||
let payload = serde_json::from_str::<&str>(ev.payload()).unwrap().trim();
|
let color_str: String = match serde_json::from_str(ev.payload()) {
|
||||||
let color = HexColor::parse_rgb(payload).unwrap();
|
Ok(color) => color,
|
||||||
update_window_theme(window_for_theme.clone(), color);
|
Err(err) => {
|
||||||
|
warn!("Failed to JSON parse color '{}': {}", ev.payload(), err);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
match HexColor::parse_rgb(color_str.trim()) {
|
||||||
|
Ok(color) => {
|
||||||
|
update_window_theme(window_for_theme.clone(), color);
|
||||||
|
}
|
||||||
|
Err(err) => {
|
||||||
|
warn!("Failed to parse background color '{}': {}", color_str, err)
|
||||||
|
}
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
let window_for_title = window.clone();
|
let window_for_title = window.clone();
|
||||||
let id2 = h.listen("yaak_title_changed", move |ev| {
|
let id2 = h.listen("yaak_title_changed", move |ev| {
|
||||||
let payload = serde_json::from_str::<&str>(ev.payload()).unwrap().trim();
|
let title: String = match serde_json::from_str(ev.payload()) {
|
||||||
update_window_title(window_for_title.clone(), payload.to_string());
|
Ok(title) => title,
|
||||||
|
Err(err) => {
|
||||||
|
warn!("Failed to parse window title \"{}\": {}", ev.payload(), err);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
update_window_title(window_for_title.clone(), title);
|
||||||
});
|
});
|
||||||
|
|
||||||
let h = h.clone();
|
let h = h.clone();
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"productName": "yaak",
|
"productName": "yaak",
|
||||||
"version": "2024.6.2",
|
"version": "2024.6.3",
|
||||||
"identifier": "app.yaak.desktop",
|
"identifier": "app.yaak.desktop",
|
||||||
"build": {
|
"build": {
|
||||||
"beforeBuildCommand": "npm run build",
|
"beforeBuildCommand": "npm run build",
|
||||||
|
|||||||
Reference in New Issue
Block a user