From c5cdea48426f89c46ff626cb0f4994b15ae2e59a Mon Sep 17 00:00:00 2001 From: Jehan Date: Tue, 14 Oct 2025 22:04:04 +0200 Subject: [PATCH] app: copy the rasterization state for all 3 types implementing GimpRasterizable. --- app/core/gimplinklayer.c | 3 +++ app/path/gimpvectorlayer.c | 5 ++++- app/text/gimptextlayer.c | 3 +++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/app/core/gimplinklayer.c b/app/core/gimplinklayer.c index 69a1d234cf..9e4c61b39b 100644 --- a/app/core/gimplinklayer.c +++ b/app/core/gimplinklayer.c @@ -397,6 +397,9 @@ gimp_link_layer_duplicate (GimpItem *item, new_layer->p->keep_monitoring = FALSE; + if (gimp_rasterizable_is_rasterized (GIMP_RASTERIZABLE (layer))) + gimp_rasterizable_set_undo_rasterized (GIMP_RASTERIZABLE (new_layer), TRUE); + g_clear_object (&link); } diff --git a/app/path/gimpvectorlayer.c b/app/path/gimpvectorlayer.c index d8cfda860d..2e6a980cd9 100644 --- a/app/path/gimpvectorlayer.c +++ b/app/path/gimpvectorlayer.c @@ -380,7 +380,7 @@ static GimpItem * gimp_vector_layer_duplicate (GimpItem *item, GType new_type) { - GimpItem *new_item; + GimpItem *new_item; g_return_val_if_fail (g_type_is_a (new_type, GIMP_TYPE_DRAWABLE), NULL); @@ -412,6 +412,9 @@ gimp_vector_layer_duplicate (GimpItem *item, NULL); g_object_unref (new_options); } + + if (gimp_rasterizable_is_rasterized (GIMP_RASTERIZABLE (vector_layer))) + gimp_rasterizable_set_undo_rasterized (GIMP_RASTERIZABLE (new_vector_layer), TRUE); } return new_item; diff --git a/app/text/gimptextlayer.c b/app/text/gimptextlayer.c index 4fd9db5ff0..890fd33db9 100644 --- a/app/text/gimptextlayer.c +++ b/app/text/gimptextlayer.c @@ -333,6 +333,9 @@ gimp_text_layer_duplicate (GimpItem *item, } new_layer->private->base_dir = layer->private->base_dir; + + if (gimp_rasterizable_is_rasterized (GIMP_RASTERIZABLE (layer))) + gimp_rasterizable_set_undo_rasterized (GIMP_RASTERIZABLE (new_layer), TRUE); } return new_item;