diff --git a/src/image/gtk.rs b/src/image/gtk.rs index bf80bcd..8c17791 100644 --- a/src/image/gtk.rs +++ b/src/image/gtk.rs @@ -13,7 +13,7 @@ pub fn new_icon_button(input: &str, icon_theme: &IconTheme, size: i32) -> Button image.add_class("icon"); match ImageProvider::parse(input, icon_theme, false, size) - .map(|provider| provider.load_into_image(image.clone())) + .map(|provider| provider.load_into_image(&image)) { Some(_) => { button.set_image(Some(&image)); @@ -42,7 +42,7 @@ pub fn new_icon_label(input: &str, icon_theme: &IconTheme, size: i32) -> gtk::Bo container.add(&image); ImageProvider::parse(input, icon_theme, false, size) - .map(|provider| provider.load_into_image(image)); + .map(|provider| provider.load_into_image(&image)); } else { let label = Label::builder().use_markup(true).label(input).build(); label.add_class("icon"); diff --git a/src/image/provider.rs b/src/image/provider.rs index eaf2222..5004c37 100644 --- a/src/image/provider.rs +++ b/src/image/provider.rs @@ -141,7 +141,7 @@ impl<'a> ImageProvider<'a> { /// Attempts to fetch the image from the location /// and load it into the provided `GTK::Image` widget. - pub fn load_into_image(&self, image: gtk::Image) -> Result<()> { + pub fn load_into_image(&self, image: >k::Image) -> Result<()> { // handle remote locations async to avoid blocking UI thread while downloading #[cfg(feature = "http")] if let ImageLocation::Remote(url) = &self.location { @@ -157,6 +157,7 @@ impl<'a> ImageProvider<'a> { { let size = self.size; + let image = image.clone(); glib_recv_mpsc!(rx, bytes => { let stream = MemoryInputStream::from_bytes(&bytes); @@ -181,11 +182,11 @@ impl<'a> ImageProvider<'a> { }); } } else { - self.load_into_image_sync(&image)?; + self.load_into_image_sync(image)?; }; #[cfg(not(feature = "http"))] - self.load_into_image_sync(&image)?; + self.load_into_image_sync(image)?; Ok(()) } diff --git a/src/modules/custom/image.rs b/src/modules/custom/image.rs index cb4a33f..fe46b5d 100644 --- a/src/modules/custom/image.rs +++ b/src/modules/custom/image.rs @@ -52,7 +52,7 @@ impl CustomWidget for ImageWidget { dynamic_string(&self.src, move |src| { ImageProvider::parse(&src, &icon_theme, false, self.size) - .map(|image| image.load_into_image(gtk_image.clone())); + .map(|image| image.load_into_image(>k_image)); }); } diff --git a/src/modules/focused.rs b/src/modules/focused.rs index 989293f..2fde9bf 100644 --- a/src/modules/focused.rs +++ b/src/modules/focused.rs @@ -156,7 +156,7 @@ impl Module for FocusedModule { if let Some((name, id)) = data { if self.show_icon { match ImageProvider::parse(&id, &icon_theme, true, self.icon_size) - .map(|image| image.load_into_image(icon.clone())) + .map(|image| image.load_into_image(&icon)) { Some(Ok(())) => icon.show(), _ => icon.hide(), diff --git a/src/modules/launcher/item.rs b/src/modules/launcher/item.rs index 07d7fb3..409ed7a 100644 --- a/src/modules/launcher/item.rs +++ b/src/modules/launcher/item.rs @@ -176,7 +176,7 @@ impl ItemButton { button.set_image(Some(>k_image)); button.set_always_show_image(true); - if let Err(err) = image.load_into_image(gtk_image) { + if let Err(err) = image.load_into_image(>k_image) { error!("{err:?}"); } }; diff --git a/src/modules/music/mod.rs b/src/modules/music/mod.rs index 96cb91a..1e02de4 100644 --- a/src/modules/music/mod.rs +++ b/src/modules/music/mod.rs @@ -415,7 +415,7 @@ impl Module