fix(bar): use custom windows-icons w/o panics

This commit uses a custom fork of windows-icons which removes runtime
panics and instead exposes a safe Option<T> based API.
This commit is contained in:
LGUG2Z
2024-09-16 14:41:39 -07:00
parent 7005a01d9c
commit 254fcc988f
3 changed files with 16 additions and 7 deletions

3
Cargo.lock generated
View File

@@ -6115,8 +6115,7 @@ dependencies = [
[[package]]
name = "windows-icons"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e8bbc62fa6f23804699b9559429f6f1eb761d215184e011cd365041d202e0b2e"
source = "git+https://github.com/LGUG2Z/windows-icons?rev=d67cc9920aa9b4883393e411fb4fa2ddd4c498b5#d67cc9920aa9b4883393e411fb4fa2ddd4c498b5"
dependencies = [
"base64",
"image",

View File

@@ -33,4 +33,4 @@ tracing = "0.1"
tracing-appender = "0.2"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
windows = { workspace = true }
windows-icons = "0.1"
windows-icons = { git = "https://github.com/LGUG2Z/windows-icons", rev = "d67cc9920aa9b4883393e411fb4fa2ddd4c498b5" }

View File

@@ -223,8 +223,13 @@ impl KomorebiNotificationState {
if let Ok(title) = window.title() {
self.focused_window_title.clone_from(&title);
self.focused_window_pid = Some(window.process_id());
let img = windows_icons::get_icon_by_process_id(window.process_id());
self.focused_window_icon = Some(img);
if let Some(img) =
windows_icons::get_icon_by_process_id(window.process_id())
{
self.focused_window_icon = Some(img);
} else {
self.focused_window_icon = None;
}
}
}
} else if let Some(container) =
@@ -234,8 +239,13 @@ impl KomorebiNotificationState {
if let Ok(title) = window.title() {
self.focused_window_title.clone_from(&title);
self.focused_window_pid = Some(window.process_id());
let img = windows_icons::get_icon_by_process_id(window.process_id());
self.focused_window_icon = Some(img);
if let Some(img) =
windows_icons::get_icon_by_process_id(window.process_id())
{
self.focused_window_icon = Some(img);
} else {
self.focused_window_icon = None;
}
}
}
} else {