From a02b4293243bd33a381fc4e69796d09b507c8bab Mon Sep 17 00:00:00 2001 From: Sietse Brouwer Date: Mon, 25 Mar 2024 15:32:42 +0100 Subject: [PATCH] Fix: GPv3: Layer settings not copied when duplicating a layer Pull Request: https://projects.blender.org/blender/blender/pulls/119821 --- .../editors/grease_pencil/intern/grease_pencil_layers.cc | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/source/blender/editors/grease_pencil/intern/grease_pencil_layers.cc b/source/blender/editors/grease_pencil/intern/grease_pencil_layers.cc index aefe1b71dd4..d692c051ceb 100644 --- a/source/blender/editors/grease_pencil/intern/grease_pencil_layers.cc +++ b/source/blender/editors/grease_pencil/intern/grease_pencil_layers.cc @@ -483,9 +483,12 @@ static int grease_pencil_layer_duplicate_exec(bContext *C, wmOperator *op) return OPERATOR_CANCELLED; } + /* Duplicate layer. */ Layer &active_layer = *grease_pencil.get_active_layer(); - Layer &new_layer = grease_pencil.add_layer(active_layer.name()); + Layer &new_layer = grease_pencil.add_layer(active_layer); + /* Clear source keyframes and recreate them with duplicated drawings. */ + new_layer.frames_for_write().clear(); for (auto [key, frame] : active_layer.frames().items()) { const int duration = frame.is_implicit_hold() ? 0 : active_layer.get_frame_duration_at(key); const int drawing_index = grease_pencil.drawings().size();