From 121c7599047ad0106d2377a22a9b70869f3d81ed Mon Sep 17 00:00:00 2001 From: Ian Douglas Scott Date: Thu, 26 Aug 2021 13:42:06 -0700 Subject: [PATCH] Load image only if uri changed --- src/mpris.rs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/mpris.rs b/src/mpris.rs index 6ad297f8..d1c75c07 100644 --- a/src/mpris.rs +++ b/src/mpris.rs @@ -20,6 +20,7 @@ pub struct MprisControlsInner { dbus: OnceCell, players: RefCell>, picture: DerefCell, + picture_uri: RefCell>, title_label: DerefCell, artist_label: DerefCell, } @@ -198,6 +199,13 @@ impl MprisControls { } async fn update_arturl(&self, arturl: Option<&str>) { + let mut picture_uri = self.inner().picture_uri.borrow_mut(); + if picture_uri.as_deref() == arturl { + return; + } + *picture_uri = arturl.map(String::from); + drop(picture_uri); + let pixbuf = async { let file = gio::File::for_uri(&arturl?); let stream = file.read_async_future(glib::PRIORITY_DEFAULT).await.ok()?;