Ver código fonte

ImageViewer: Scale image to window on startup

We used to do the opposite, meaning that a huge images make the window
bigger than the screen. We now define a range for the window size and
scale the image if it doesn't fit un the current scope.
Lucas CHOLLET 2 anos atrás
pai
commit
d8819c2d0e
1 arquivos alterados com 6 adições e 2 exclusões
  1. 6 2
      Userland/Applications/ImageViewer/ViewWidget.cpp

+ 6 - 2
Userland/Applications/ImageViewer/ViewWidget.cpp

@@ -226,8 +226,6 @@ void ViewWidget::resize_window()
 
     auto absolute_bitmap_rect = content_rect();
     absolute_bitmap_rect.translate_by(window()->rect().top_left());
-    if (window()->rect().contains(absolute_bitmap_rect))
-        return;
 
     if (!m_bitmap)
         return;
@@ -239,8 +237,14 @@ void ViewWidget::resize_window()
     if (new_size.height() < 200)
         new_size.set_height(200);
 
+    if (new_size.width() > 500)
+        new_size = { 500, 500 * absolute_bitmap_rect.height() / absolute_bitmap_rect.width() };
+    if (new_size.height() > 500)
+        new_size = { 500 * absolute_bitmap_rect.width() / absolute_bitmap_rect.height(), 500 };
+
     new_size.set_height(new_size.height() + m_toolbar_height);
     window()->resize(new_size);
+    scale_image_for_window();
 }
 
 void ViewWidget::set_bitmap(Gfx::Bitmap const* bitmap)