From d8b1dd8a3701139d2abb841939338f8993d1751d Mon Sep 17 00:00:00 2001 From: Alx Sa Date: Thu, 8 Feb 2024 17:04:25 +0000 Subject: [PATCH] Core: Explicitly merge down NDE filters on flatten Resolves #10769. Flattening an image or merging down layers caused us to lose NDE filters on undo, as we flattened with gimp_gegl_create_flatten_node () which didn't create an Undo/Redo object. To fix this, we merge the filters down beforehand with our API so that they will be restored when undoing. --- app/core/gimpimage-merge.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/app/core/gimpimage-merge.c b/app/core/gimpimage-merge.c index 5a5f82bed6..8e332cd215 100644 --- a/app/core/gimpimage-merge.c +++ b/app/core/gimpimage-merge.c @@ -36,6 +36,7 @@ #include "gimp.h" #include "gimpcontext.h" +#include "gimpdrawable-filters.h" #include "gimperror.h" #include "gimpgrouplayer.h" #include "gimpimage.h" @@ -601,6 +602,10 @@ gimp_image_merge_layers (GimpImage *image, layer = layers->data; + /* Merge down filter effects so they can be restored on undo */ + gimp_drawable_merge_filters (GIMP_DRAWABLE (layer)); + gimp_drawable_clear_filters (GIMP_DRAWABLE (layer)); + gimp_item_get_offset (GIMP_ITEM (layer), &off_x, &off_y); switch (merge_type)