GPv3: Disable mask property for default layers of primitives

Caused by 85ce2a34e31f764cab1eaf195a3f80f30b77cf06
Default layers added with the primitive gpv3 object has the `use_mask`
property enabled. To fix this, set `GP_LAYER_TREE_NODE_HIDE_MASKS`
inside `add_layer/groups()` function instead of the operator's code.

Falk found this in #121734

Pull Request: https://projects.blender.org/blender/blender/pulls/121780
This commit is contained in:
Pratik Borhade 2024-05-14 16:56:01 +02:00 committed by Pratik Borhade
parent b8febd87e1
commit 0fa207d5ef
2 changed files with 8 additions and 4 deletions

@ -2720,6 +2720,8 @@ blender::bke::greasepencil::Layer &GreasePencil::add_layer(const blender::String
const int numLayers = layers().size();
CustomData_realloc(&layers_data, numLayers, numLayers + 1);
bke::greasepencil::Layer *new_layer = MEM_new<bke::greasepencil::Layer>(__func__, unique_name);
/* Hide masks by default. */
new_layer->base.flag |= GP_LAYER_TREE_NODE_HIDE_MASKS;
return root_group().add_node(new_layer->as_node()).as_layer();
}
@ -2728,6 +2730,8 @@ blender::bke::greasepencil::Layer &GreasePencil::add_layer(
{
using namespace blender;
blender::bke::greasepencil::Layer &new_layer = this->add_layer(name);
/* Hide masks by default. */
new_layer.base.flag |= GP_LAYER_TREE_NODE_HIDE_MASKS;
move_node_into(new_layer.as_node(), parent_group);
return new_layer;
}
@ -2764,6 +2768,8 @@ blender::bke::greasepencil::LayerGroup &GreasePencil::add_layer_group(
std::string unique_name = unique_layer_group_name(*this, name);
bke::greasepencil::LayerGroup *new_group = MEM_new<bke::greasepencil::LayerGroup>(__func__,
unique_name);
/* Hide masks by default. */
new_group->base.flag |= GP_LAYER_TREE_NODE_HIDE_MASKS;
return parent_group.add_node(new_group->as_node()).as_group();
}

@ -51,8 +51,7 @@ static int grease_pencil_layer_add_exec(bContext *C, wmOperator *op)
op->ptr, "new_layer_name", nullptr, 0, &new_layer_name_length);
BLI_SCOPED_DEFER([&] { MEM_SAFE_FREE(new_layer_name); });
Layer &new_layer = grease_pencil.add_layer(new_layer_name);
/* Hide masks by default. */
new_layer.base.flag |= GP_LAYER_TREE_NODE_HIDE_MASKS;
if (grease_pencil.has_active_layer()) {
grease_pencil.move_node_after(new_layer.as_node(),
grease_pencil.get_active_layer()->as_node());
@ -260,8 +259,7 @@ static int grease_pencil_layer_group_add_exec(bContext *C, wmOperator *op)
}();
LayerGroup &new_group = grease_pencil.add_layer_group(parent_group, new_layer_group_name);
/* Hide masks by default. */
new_group.base.flag |= GP_LAYER_TREE_NODE_HIDE_MASKS;
if (grease_pencil.has_active_layer()) {
grease_pencil.move_node_after(new_group.as_node(),
grease_pencil.get_active_layer()->as_node());