1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-26 05:27:46 +00:00

PixelPaint: Add delete selection behavior

The delete key can now be used to erase the pixels on the active layer
contained within the selection rectangle.

Closes #11861
This commit is contained in:
Olivier De Cannière 2022-01-14 15:18:47 +01:00 committed by Linus Groh
parent d3e7ec5a56
commit d3dfb957a6
3 changed files with 17 additions and 0 deletions

View file

@ -10,6 +10,7 @@
#include <AK/RefPtr.h>
#include <AK/Try.h>
#include <LibGfx/Bitmap.h>
#include <LibGfx/Painter.h>
namespace PixelPaint {
@ -129,4 +130,13 @@ RefPtr<Gfx::Bitmap> Layer::try_copy_bitmap(Selection const& selection) const
return result;
}
void Layer::erase_selection(Selection const& selection)
{
Gfx::Painter painter { bitmap() };
auto const image_and_selection_intersection = m_image.rect().intersected(selection.bounding_rect());
auto const translated_to_layer_space = image_and_selection_intersection.translated(-location());
painter.clear_rect(translated_to_layer_space, Color::Transparent);
did_modify_bitmap(translated_to_layer_space);
}
}