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;