summaryrefslogtreecommitdiff
path: root/Userland
diff options
context:
space:
mode:
authorLucas CHOLLET <lucas.chollet@free.fr>2023-03-22 14:08:51 -0400
committerAndreas Kling <kling@serenityos.org>2023-03-22 23:22:58 +0100
commitd8819c2d0eef153ff98c9bc1760e612cd5ff8496 (patch)
treedd89107709074abb73587a67b759fa16c597f66d /Userland
parentc574b972464553e18640b8fc6889ddd2cc4788c5 (diff)
downloadserenity-d8819c2d0eef153ff98c9bc1760e612cd5ff8496.zip
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.
Diffstat (limited to 'Userland')
-rw-r--r--Userland/Applications/ImageViewer/ViewWidget.cpp8
1 files 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)