1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-26 18:47:44 +00:00

PixelPaint: Don't resize layers when resizing the canvas

Calling Image::resize() with ScalingMode::None now resizes the canvas
without changing the size or position of any layers.
This commit is contained in:
Tim Ledbetter 2023-03-13 18:31:15 +00:00 committed by Andreas Kling
parent 6c6af8ae4e
commit 92a0a7e3fa

View file

@ -663,6 +663,7 @@ ErrorOr<void> Image::resize(Gfx::IntSize new_size, Gfx::Painter::ScalingMode sca
scale_y = new_size.height() / static_cast<float>(size().height()); scale_y = new_size.height() / static_cast<float>(size().height());
} }
if (scaling_mode != Gfx::Painter::ScalingMode::None) {
Vector<NonnullRefPtr<Layer>> resized_layers; Vector<NonnullRefPtr<Layer>> resized_layers;
TRY(resized_layers.try_ensure_capacity(m_layers.size())); TRY(resized_layers.try_ensure_capacity(m_layers.size()));
@ -687,6 +688,7 @@ ErrorOr<void> Image::resize(Gfx::IntSize new_size, Gfx::Painter::ScalingMode sca
layer->did_modify_bitmap({}, Layer::NotifyClients::Yes); layer->did_modify_bitmap({}, Layer::NotifyClients::Yes);
select_layer(m_layers[selected_layer_index]); select_layer(m_layers[selected_layer_index]);
}
m_size = { new_size.width(), new_size.height() }; m_size = { new_size.width(), new_size.height() };
did_change_rect(); did_change_rect();