Fix T92928: Geometry nodes animation decorator wrong for vectors

Decorators were only added for the first item of an array.

Decorators for all items of an array are added:
- if the layout is flagged `UI_ITEM_PROP_DECORATE` automatically in
`uiItemFullR` or
- calling `uiItemDecoratorR` (but only in certain situations, see below)

When calling `uiItemDecoratorR` with an index of 0, the following
happens:
- the index is passed to `uiItemDecoratorR_prop`
- that checks with `ui_item_rna_is_expand` if decorators should be added
to all items of an array
- the check fails (because it only permits RNA_NO_INDEX -- which is -1)

So two things we can do:
- remain using `uiItemDecoratorR` (that would require to pass an index
of RNA_NO_INDEX -- a bad level include -- or -1
- just use `uiLayoutSetPropDecorate` to flag the row properly

This patch does later.

Differential Revision: https://developer.blender.org/D13159
This commit is contained in:
Philipp Oeser 2021-11-09 14:16:20 +01:00
parent cc949f0a40
commit 570331ca96
Notes: blender-bot 2023-02-14 08:25:14 +01:00
Referenced by issue #92928, Geometry nodes vector field keyframing bug
1 changed files with 1 additions and 1 deletions

View File

@ -1362,8 +1362,8 @@ static void draw_property_for_socket(const bContext &C,
}
else {
uiLayout *row = uiLayoutRow(layout, false);
uiLayoutSetPropDecorate(row, true);
uiItemR(row, md_ptr, rna_path, 0, socket.name, ICON_NONE);
uiItemDecoratorR(row, md_ptr, rna_path, 0);
}
}
}