diff --git a/src/widgets/image_view.rs b/src/widgets/image_view.rs index 15a477c..ec7e8cf 100644 --- a/src/widgets/image_view.rs +++ b/src/widgets/image_view.rs @@ -891,6 +891,10 @@ impl LpImageView { self.imp().zoom_menu_button.clone() } + pub fn zoom_toggle(&self) -> gtk::ToggleButton { + self.imp().zoom_toggle.clone() + } + pub fn zoom_value_f64(&self) -> Option { let mut value = self.imp().zoom_value.text().to_string(); let locale_settings = util::locale_settings(); diff --git a/src/widgets/image_window.rs b/src/widgets/image_window.rs index 2f0e807..19e0b52 100644 --- a/src/widgets/image_window.rs +++ b/src/widgets/image_window.rs @@ -757,6 +757,12 @@ impl LpImageWindow { .is_some_and(|image| !image.is_best_fit()), ); + self.image_view().zoom_toggle().set_sensitive(enabled_shown); + + self.image_view() + .zoom_menu_button() + .set_sensitive(enabled_shown); + // Actions that are available if there is an current image, even if it's not // shown const ACTIONS_CURRENT: &[Action] = &[ @@ -774,11 +780,12 @@ impl LpImageWindow { } // Editing related actions - let enable_editing = self - .imp() - .image_view - .current_image() - .is_some_and(|x| x.editable()); + let enable_editing = enabled_shown + && self + .imp() + .image_view + .current_image() + .is_some_and(|x| x.editable()); self.action_set_enabled(&Action::Edit, enable_editing); } diff --git a/src/widgets/image_window.ui b/src/widgets/image_window.ui index ee088e0..df8e58c 100644 --- a/src/widgets/image_window.ui +++ b/src/widgets/image_window.ui @@ -126,7 +126,7 @@ - + win.edit crop-symbolic Edit Image