slidingView: Don't notify page updates emmediately

This allows to add new pages after clearing without triggering an empty
state in between. This also fixes opening a new image leaving the
fullscreen mode.

Fixes #286
This commit is contained in:
Sophie Herold 2023-12-21 21:28:37 +01:00
parent f0c374afdc
commit 476abf1612
2 changed files with 58 additions and 10 deletions

View file

@ -293,14 +293,14 @@ impl LpImageView {
}
fn load_files(&self, files: Vec<gio::File>) {
let sliding_view = self.sliding_view();
let sliding_view = self.sliding_view().editor();
if let Some(first) = files.first().cloned() {
let model = LpFileModel::from_files(files);
self.set_model(model);
let page = self.new_image_page(&first);
sliding_view.clear();
sliding_view.clear_lazy();
sliding_view.append(&page);
self.update_sliding_view(&first);
} else {
@ -421,7 +421,7 @@ impl LpImageView {
"Updating sliding_view neighbors for current path {}",
current_file.uri()
);
let sliding_view = self.sliding_view();
let sliding_view = self.sliding_view().editor();
self.imp().preserve_content.set(false);
@ -431,7 +431,7 @@ impl LpImageView {
// remove old pages
for (uri, page) in &existing {
if !target.contains_key(uri) {
sliding_view.remove(page);
sliding_view.remove_lazy(page);
}
}