浏览代码

ImageViewer: Don't resize window on image rotation or flip

Lucas CHOLLET 2 年之前
父节点
当前提交
5cceae821d
共有 2 个文件被更改,包括 9 次插入8 次删除
  1. 8 8
      Userland/Applications/ImageViewer/ViewWidget.cpp
  2. 1 0
      Userland/Applications/ImageViewer/ViewWidget.h

+ 8 - 8
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())

+ 1 - 0
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;