From d0f0da2eefc005635af0ab74f21a3b6f679617a7 Mon Sep 17 00:00:00 2001 From: Jeremy Soller Date: Fri, 15 Nov 2024 08:03:06 -0700 Subject: [PATCH] Update desktop configs cached in locations, fixes #608 --- src/app.rs | 10 ++++++++-- src/lib.rs | 3 ++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/app.rs b/src/app.rs index 9d378ed..b00e7ed 100644 --- a/src/app.rs +++ b/src/app.rs @@ -859,13 +859,19 @@ impl App { let mut needs_reload = Vec::new(); for entity in self.tab_model.iter() { if let Some(tab) = self.tab_model.data::(entity) { - if let Location::Desktop(..) = &tab.location { - needs_reload.push((entity, tab.location.clone())); + if let Location::Desktop(path, output, _) = &tab.location { + needs_reload.push(( + entity, + Location::Desktop(path.clone(), output.clone(), self.config.desktop), + )); }; } } let mut commands = Vec::with_capacity(needs_reload.len()); for (entity, location) in needs_reload { + if let Some(tab) = self.tab_model.data_mut::(entity) { + tab.location = location.clone(); + } commands.push(self.rescan_tab(entity, location, None)); } Task::batch(commands) diff --git a/src/lib.rs b/src/lib.rs index efe6e5e..c6ca345 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -68,11 +68,12 @@ pub fn desktop() -> Result<(), Box> { settings = settings.no_main_window(true); } + let locations = vec![tab::Location::Desktop(desktop_dir(), String::new(), config.desktop)]; let flags = Flags { config_handler, config, mode: app::Mode::Desktop, - locations: vec![tab::Location::Path(desktop_dir())], + locations, }; cosmic::app::run::(settings, flags)?;