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:
authorSybren A. Stüvel <sybren@stuvel.eu>2018-01-17 19:14:31 +0300
committerSybren A. Stüvel <sybren@stuvel.eu>2018-01-17 19:14:39 +0300
commit5d4ffb42a327b08542e3556e7a98f1bc14d21c70 (patch)
tree159e8ea941b28a8190ee73ab3e1f4d5851b82675 /source/blender/editors/space_graph
parenta8fc44299b04129573ed63af5649a9c5d3d83a13 (diff)
Delete Invalid Drivers: more lenient poll function
This function is faster and also allows for deletion of invalid drivers in nested data blocks (for example in shape keys). Thanks @sergey!
Diffstat (limited to 'source/blender/editors/space_graph')
-rw-r--r--source/blender/editors/space_graph/graph_edit.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/source/blender/editors/space_graph/graph_edit.c b/source/blender/editors/space_graph/graph_edit.c
index 69feae6ee24..43a83929eb0 100644
--- a/source/blender/editors/space_graph/graph_edit.c
+++ b/source/blender/editors/space_graph/graph_edit.c
@@ -2803,6 +2803,20 @@ static int graph_driver_delete_invalid_exec(bContext *C, wmOperator *op)
return OPERATOR_FINISHED;
}
+static int graph_driver_delete_invalid_poll(bContext *C)
+{
+ bAnimContext ac;
+ ScrArea *sa = CTX_wm_area(C);
+
+ /* firstly, check if in Graph Editor */
+ if ((sa == NULL) || (sa->spacetype != SPACE_IPO))
+ return 0;
+
+ /* try to init Anim-Context stuff ourselves and check */
+ return ANIM_animdata_get_context(C, &ac) != 0;
+}
+
+
void GRAPH_OT_driver_delete_invalid(wmOperatorType *ot)
{
/* identifiers */
@@ -2812,7 +2826,7 @@ void GRAPH_OT_driver_delete_invalid(wmOperatorType *ot)
/* api callbacks */
ot->exec = graph_driver_delete_invalid_exec;
- ot->poll = graphop_visible_keyframes_poll;
+ ot->poll = graph_driver_delete_invalid_poll;
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;