From d8819c2d0eef153ff98c9bc1760e612cd5ff8496 Mon Sep 17 00:00:00 2001 From: Lucas CHOLLET Date: Wed, 22 Mar 2023 14:08:51 -0400 Subject: [PATCH] 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. --- Userland/Applications/ImageViewer/ViewWidget.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Userland/Applications/ImageViewer/ViewWidget.cpp b/Userland/Applications/ImageViewer/ViewWidget.cpp index 86c033a7e4..ecc3ed1bd4 100644 --- a/Userland/Applications/ImageViewer/ViewWidget.cpp +++ b/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)