diff --git a/src/image/provider.rs b/src/image/provider.rs index a23debfe..6003a14c 100644 --- a/src/image/provider.rs +++ b/src/image/provider.rs @@ -11,7 +11,7 @@ use gtk::{IconLookupFlags, IconTheme}; use std::path::{Path, PathBuf}; #[cfg(feature = "http")] use tokio::sync::mpsc; -use tracing::warn; +use tracing::{debug, warn}; cfg_if!( if #[cfg(feature = "http")] { @@ -45,6 +45,7 @@ impl<'a> ImageProvider<'a> { /// but no other check is performed. pub fn parse(input: &str, theme: &'a IconTheme, use_fallback: bool, size: i32) -> Option { let location = Self::get_location(input, theme, size, use_fallback, 0)?; + debug!("Resolved {input} --> {location:?} (size: {size})"); Some(Self { location, size }) } diff --git a/src/modules/tray/icon.rs b/src/modules/tray/icon.rs index 850137f6..55f09fc4 100644 --- a/src/modules/tray/icon.rs +++ b/src/modules/tray/icon.rs @@ -1,9 +1,9 @@ use glib::ffi::g_strfreev; use glib::translate::ToGlibPtr; use gtk::ffi::gtk_icon_theme_get_search_path; -use gtk::gdk_pixbuf::{Colorspace, InterpType}; +use gtk::gdk_pixbuf::{Colorspace, InterpType, Pixbuf}; use gtk::prelude::IconThemeExt; -use gtk::{gdk_pixbuf, IconLookupFlags, IconTheme, Image}; +use gtk::{IconLookupFlags, IconTheme, Image}; use std::collections::HashSet; use std::ffi::CStr; use std::os::raw::{c_char, c_int}; @@ -69,7 +69,7 @@ pub(crate) fn get_image_from_pixmap(item: &StatusNotifierItem) -> Option let bytes = glib::Bytes::from(&pixmap.pixels); let row_stride = pixmap.width * 4; // - let pixbuf = gdk_pixbuf::Pixbuf::from_bytes( + let pixbuf = Pixbuf::from_bytes( &bytes, Colorspace::Rgb, true, diff --git a/src/modules/upower.rs b/src/modules/upower.rs index 0019a65f..f2b976a2 100644 --- a/src/modules/upower.rs +++ b/src/modules/upower.rs @@ -199,7 +199,9 @@ impl Module for UpowerModule { let format = format.replace("{percentage}", &properties.percentage.to_string()) .replace("{time_remaining}", &time_remaining) .replace("{state}", battery_state_to_string(state)); - let icon_name = String::from("icon:") + &properties.icon_name; + + let mut icon_name = String::from("icon:"); + icon_name.push_str(&properties.icon_name); ImageProvider::parse(&icon_name, &icon_theme, false, self.icon_size) .map(|provider| provider.load_into_image(icon.clone()));