diff --git a/src/file_model.rs b/src/file_model.rs index be6ac7c19debf63c474ed71c80977f14f341766a..d9889a139f041f70e7761e0e507cc4d6d02300d0 100644 --- a/src/file_model.rs +++ b/src/file_model.rs @@ -273,7 +273,7 @@ impl LpFileModel { if Self::is_image_file(file_a) => { let mut files = self.imp().files.borrow_mut(); - let changed = files.insert(file_a.uri(),file_a.clone()).is_some(); + let changed = files.insert(file_a.uri(),file_a.clone()).is_none(); if changed { Self::sort(&mut files); } @@ -281,11 +281,7 @@ impl LpFileModel { } gio::FileMonitorEvent::Deleted | gio::FileMonitorEvent::MovedOut | gio::FileMonitorEvent::Unmounted => { let mut files = self.imp().files.borrow_mut(); - let changed = files.remove(&file_a.uri()).is_some(); - if changed { - Self::sort(&mut files); - } - changed + files.remove(&file_a.uri()).is_some() } gio::FileMonitorEvent::Renamed => { if let Some(file_b) = file_b { @@ -294,7 +290,7 @@ impl LpFileModel { let mut files = self.imp().files.borrow_mut(); changed |= files.remove(&file_a.uri()).is_some(); if Self::is_image_file(file_b) { - changed |= files.insert(file_b.uri(), file_b.clone()).is_some(); + changed |= files.insert(file_b.uri(), file_b.clone()).is_none(); if changed { Self::sort(&mut files); } diff --git a/src/widgets/image.rs b/src/widgets/image.rs index a18a6f7cc0e557cd989006bfd200c42745a12ebb..c16291dcbf921f009c302afe781ae0d146faa276 100644 --- a/src/widgets/image.rs +++ b/src/widgets/image.rs @@ -951,6 +951,8 @@ impl LpImage { } imp.file_monitor.replace(monitor.ok()); + + self.notify("file"); } /// File changed on drive