From 55e103deb5e3396dc63ee0cf8ad426e248b50f00 Mon Sep 17 00:00:00 2001 From: Tim Ledbetter Date: Fri, 24 Feb 2023 06:12:49 +0000 Subject: [PATCH] PixelPaint: Make "Crop Image to Content" work with disjoint layers --- Userland/Applications/PixelPaint/Image.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Userland/Applications/PixelPaint/Image.cpp b/Userland/Applications/PixelPaint/Image.cpp index 3929197cc0..09dd480d8d 100644 --- a/Userland/Applications/PixelPaint/Image.cpp +++ b/Userland/Applications/PixelPaint/Image.cpp @@ -665,7 +665,8 @@ Optional Image::nonempty_content_bounding_rect() const for (auto const& layer : m_layers) { auto layer_content_rect_in_layer_coordinates = layer->nonempty_content_bounding_rect(); if (!layer_content_rect_in_layer_coordinates.has_value()) - continue; + layer_content_rect_in_layer_coordinates = layer->rect(); + auto layer_content_rect_in_image_coordinates = layer_content_rect_in_layer_coordinates->translated(layer->location()); if (!bounding_rect.has_value()) bounding_rect = layer_content_rect_in_image_coordinates; @@ -673,6 +674,10 @@ Optional Image::nonempty_content_bounding_rect() const bounding_rect = bounding_rect->united(layer_content_rect_in_image_coordinates); } + bounding_rect->intersect(rect()); + if (bounding_rect == rect()) + return OptionalNone {}; + return bounding_rect; }