imageView: Reset zoom and rotation on page change

Keeping zoom or rotation would be inconsistent since it's
only preserved while images are cached.

Close #65
This commit is contained in:
Sophie Herold 2023-02-02 20:23:05 +01:00 • committed by Christopher Davis
parent 9c51dea6d1
commit 70d8d00a3d

View file

@ -473,14 +473,29 @@ impl LpImageView {
}
#[template_callback]
/// Called when page change animation completed
fn target_page_reached_cb(&self) {
let current_page = self.current_page();
if self.imp().preserve_content.get() {
if let Some(new_page) = self.current_page() {
if let Some(new_page) = &current_page {
self.update_sliding_view(&new_page.path());
} else {
log::error!("No LpImagePage");
}
}
// Reset zoom and rotation of other pages
if let Some(new_page) = &current_page {
let mut other_pages = self.sliding_view().pages();
other_pages.remove(&new_page.path());
for (_, page) in other_pages {
let image = page.image();
image.set_rotation(0.);
image.set_best_fit(true);
image.zoom_best_fit();
}
}
}
#[template_callback]