mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 16:57:35 +00:00
PixelPaint: Make merge up and down actions work with disjoint layers
The "Merge Active Layer Up" and "Merge Active Layer Down" actions now work with layers of different sizes. These actions now expand the bounding rect of the newly merged layer to contain all layers being merged. Layers which are not visible are now ignored by these actions.
This commit is contained in:
parent
74dff6250c
commit
e294c96aef
3 changed files with 79 additions and 29 deletions
|
@ -870,7 +870,11 @@ ErrorOr<void> MainWidget::initialize_menubar(GUI::Window& window)
|
|||
auto active_layer = editor->active_layer();
|
||||
if (!active_layer)
|
||||
return;
|
||||
editor->image().merge_active_layer_up(*active_layer);
|
||||
|
||||
if (auto maybe_error = editor->image().merge_active_layer_up(*active_layer); maybe_error.is_error()) {
|
||||
GUI::MessageBox::show_error(&window, DeprecatedString::formatted("Failed to merge active layer up: {}", maybe_error.release_error()));
|
||||
return;
|
||||
}
|
||||
editor->did_complete_action("Merge Active Layer Up"sv);
|
||||
}));
|
||||
|
||||
|
@ -881,7 +885,11 @@ ErrorOr<void> MainWidget::initialize_menubar(GUI::Window& window)
|
|||
auto active_layer = editor->active_layer();
|
||||
if (!active_layer)
|
||||
return;
|
||||
editor->image().merge_active_layer_down(*active_layer);
|
||||
|
||||
if (auto maybe_error = editor->image().merge_active_layer_down(*active_layer); maybe_error.is_error()) {
|
||||
GUI::MessageBox::show_error(&window, DeprecatedString::formatted("Failed to merge active layer down: {}", maybe_error.release_error()));
|
||||
return;
|
||||
}
|
||||
editor->did_complete_action("Merge Active Layer Down"sv);
|
||||
}));
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue