diff --git a/app/core/gimpimage-duplicate.c b/app/core/gimpimage-duplicate.c index b400ebd595..2275b30e9e 100644 --- a/app/core/gimpimage-duplicate.c +++ b/app/core/gimpimage-duplicate.c @@ -336,6 +336,11 @@ gimp_image_duplicate_paths (GimpImage *image, GimpPath *path = list->data; GimpPath *new_path; + /* If the path is attached to a vector layer, it will be + * duplicated already */ + if (gimp_path_attached_to_vector_layer (path, image)) + continue; + new_path = GIMP_PATH (gimp_image_duplicate_item (GIMP_ITEM (path), new_image)); diff --git a/app/path/gimpvectorlayer.c b/app/path/gimpvectorlayer.c index b2955760c6..a07c83bb85 100644 --- a/app/path/gimpvectorlayer.c +++ b/app/path/gimpvectorlayer.c @@ -398,10 +398,10 @@ gimp_vector_layer_convert (GimpItem *item, if (path) { - gimp_item_convert (GIMP_ITEM (path), dest_image, GIMP_TYPE_PATH); + GIMP_ITEM_GET_CLASS (path)->convert (GIMP_ITEM (path), dest_image, + G_TYPE_FROM_INSTANCE (path)); - if (! gimp_item_is_attached (GIMP_ITEM (path)) && - gimp_item_get_image (GIMP_ITEM (path)) == dest_image) + if (! gimp_item_is_attached (GIMP_ITEM (path))) gimp_image_add_path (dest_image, path, NULL, -1, FALSE); }