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; }