Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilipp Oeser <info@graphics-engineer.com>2021-04-21 19:08:50 +0300
committerPhilipp Oeser <info@graphics-engineer.com>2021-08-12 17:46:28 +0300
commit3930b8c69e274df4aab91f7469510c8636a96cbf (patch)
tree9db8c6d4dc64dd904afbab31cad56701d9762aff
parent333c3c92ab83c1b18e05a0e765d72f66fc5a5466 (diff)
Fix NLA action cannot be unlinked in certain cases
The poll for unlinking calls `nla_panel_context` without providing an adt pointer, and there is a check for this pointer in `nla_panel_context` leading to never returning true if it is not provided. (this is fine if there are tracks already, poll would succeed in this case, `nla_panel_context` goes a different code path then) Same call to `nla_panel_context` is also done in the beginning of the corresponding unlink exec function (but this time providing the pointer because it is used later), so it makes sense to do the same thing in the poll function. Equal check is also done in the panel poll function, so now these are all in sync. Part of T87681. Maniphest Tasks: T87681 Differential Revision: https://developer.blender.org/D11041
-rw-r--r--source/blender/editors/space_nla/nla_channels.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/source/blender/editors/space_nla/nla_channels.c b/source/blender/editors/space_nla/nla_channels.c
index 0498964c549..1b87a8c6b9d 100644
--- a/source/blender/editors/space_nla/nla_channels.c
+++ b/source/blender/editors/space_nla/nla_channels.c
@@ -562,7 +562,8 @@ void NLA_OT_action_pushdown(wmOperatorType *ot)
static bool nla_action_unlink_poll(bContext *C)
{
if (ED_operator_nla_active(C)) {
- return nla_panel_context(C, NULL, NULL, NULL);
+ PointerRNA adt_ptr;
+ return (nla_panel_context(C, &adt_ptr, NULL, NULL) && (adt_ptr.data != NULL));
}
/* something failed... */