Forráskód Böngészése

PixelPaint: Make "Crop Image to Content" work with disjoint layers

Tim Ledbetter 2 éve
szülő
commit
55e103deb5
1 módosított fájl, 6 hozzáadás és 1 törlés
  1. 6 1
      Userland/Applications/PixelPaint/Image.cpp

+ 6 - 1
Userland/Applications/PixelPaint/Image.cpp

@@ -665,7 +665,8 @@ Optional<Gfx::IntRect> 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<Gfx::IntRect> 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;
 }