diff --git a/Userland/Applications/ImageViewer/ViewWidget.cpp b/Userland/Applications/ImageViewer/ViewWidget.cpp index 428aa9d18b..80cad1c7e3 100644 --- a/Userland/Applications/ImageViewer/ViewWidget.cpp +++ b/Userland/Applications/ImageViewer/ViewWidget.cpp @@ -48,19 +48,13 @@ void ViewWidget::clear() void ViewWidget::flip(Gfx::Orientation orientation) { m_bitmap = m_bitmap->flipped(orientation).release_value_but_fixme_should_propagate_errors(); - set_original_rect(m_bitmap->rect()); - set_scale(scale()); - - resize_window(); + scale_image_for_window(); } void ViewWidget::rotate(Gfx::RotationDirection rotation_direction) { m_bitmap = m_bitmap->rotated(rotation_direction).release_value_but_fixme_should_propagate_errors(); - set_original_rect(m_bitmap->rect()); - set_scale(scale()); - - resize_window(); + scale_image_for_window(); } bool ViewWidget::is_next_available() const @@ -215,6 +209,12 @@ void ViewWidget::drop_event(GUI::DropEvent& event) on_drop(event); } +void ViewWidget::scale_image_for_window() +{ + set_original_rect(m_bitmap->rect()); + fit_content_to_view(GUI::AbstractZoomPanWidget::FitType::Both); +} + void ViewWidget::resize_window() { if (window()->is_fullscreen() || window()->is_maximized()) diff --git a/Userland/Applications/ImageViewer/ViewWidget.h b/Userland/Applications/ImageViewer/ViewWidget.h index d87596cef7..c67b3c69bf 100644 --- a/Userland/Applications/ImageViewer/ViewWidget.h +++ b/Userland/Applications/ImageViewer/ViewWidget.h @@ -37,6 +37,7 @@ public: void set_scaled_for_first_image(bool val) { m_scaled_for_first_image = val; } void set_path(DeprecatedString const& path); void resize_window(); + void scale_image_for_window(); void set_scaling_mode(Gfx::Painter::ScalingMode); bool is_next_available() const;