mirror of
https://github.com/RGBCube/serenity
synced 2025-07-26 08:27:45 +00:00
PixelPaint: Make "Crop Image to Content" work with disjoint layers
This commit is contained in:
parent
c98ec85fb5
commit
55e103deb5
1 changed files with 6 additions and 1 deletions
|
@ -665,7 +665,8 @@ Optional<Gfx::IntRect> Image::nonempty_content_bounding_rect() const
|
||||||
for (auto const& layer : m_layers) {
|
for (auto const& layer : m_layers) {
|
||||||
auto layer_content_rect_in_layer_coordinates = layer->nonempty_content_bounding_rect();
|
auto layer_content_rect_in_layer_coordinates = layer->nonempty_content_bounding_rect();
|
||||||
if (!layer_content_rect_in_layer_coordinates.has_value())
|
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());
|
auto layer_content_rect_in_image_coordinates = layer_content_rect_in_layer_coordinates->translated(layer->location());
|
||||||
if (!bounding_rect.has_value())
|
if (!bounding_rect.has_value())
|
||||||
bounding_rect = layer_content_rect_in_image_coordinates;
|
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 = bounding_rect->united(layer_content_rect_in_image_coordinates);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bounding_rect->intersect(rect());
|
||||||
|
if (bounding_rect == rect())
|
||||||
|
return OptionalNone {};
|
||||||
|
|
||||||
return bounding_rect;
|
return bounding_rect;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue