diff options
-rw-r--r-- | source/blender/editors/animation/keyframing.c | 10 | ||||
-rw-r--r-- | source/blender/editors/animation/keyingsets.c | 2 | ||||
-rw-r--r-- | source/blender/editors/space_action/action_edit.c | 8 | ||||
-rw-r--r-- | source/blender/editors/space_action/space_action.c | 19 | ||||
-rw-r--r-- | source/blender/editors/space_graph/graph_edit.c | 6 |
5 files changed, 27 insertions, 18 deletions
diff --git a/source/blender/editors/animation/keyframing.c b/source/blender/editors/animation/keyframing.c index 72402d498ba..a17fec52a1c 100644 --- a/source/blender/editors/animation/keyframing.c +++ b/source/blender/editors/animation/keyframing.c @@ -1304,7 +1304,7 @@ static int insert_key_exec(bContext *C, wmOperator *op) BKE_reportf(op->reports, RPT_INFO, "Successfully added %d keyframes for keying set '%s'", success, ks->name); /* send notifiers that keyframes have been changed */ - WM_event_add_notifier(C, NC_ANIMATION | ND_KEYFRAME | NA_EDITED, NULL); + WM_event_add_notifier(C, NC_ANIMATION | ND_KEYFRAME | NA_ADDED, NULL); } else BKE_report(op->reports, RPT_WARNING, "Keying set failed to insert any keyframes"); @@ -1456,7 +1456,7 @@ static int delete_key_exec(bContext *C, wmOperator *op) BKE_reportf(op->reports, RPT_INFO, "Successfully removed %d keyframes for keying set '%s'", success, ks->name); /* send notifiers that keyframes have been changed */ - WM_event_add_notifier(C, NC_ANIMATION | ND_KEYFRAME | NA_EDITED, NULL); + WM_event_add_notifier(C, NC_ANIMATION | ND_KEYFRAME | NA_REMOVED, NULL); } else BKE_report(op->reports, RPT_WARNING, "Keying set failed to remove any keyframes"); @@ -1709,7 +1709,7 @@ static int insert_key_button_exec(bContext *C, wmOperator *op) uiContextAnimUpdate(C); /* send notifiers that keyframes have been changed */ - WM_event_add_notifier(C, NC_ANIMATION | ND_KEYFRAME | NA_EDITED, NULL); + WM_event_add_notifier(C, NC_ANIMATION | ND_KEYFRAME | NA_ADDED, NULL); } return (success) ? OPERATOR_FINISHED : OPERATOR_CANCELLED; @@ -1780,7 +1780,7 @@ static int delete_key_button_exec(bContext *C, wmOperator *op) uiContextAnimUpdate(C); /* send notifiers that keyframes have been changed */ - WM_event_add_notifier(C, NC_ANIMATION | ND_KEYFRAME | NA_EDITED, NULL); + WM_event_add_notifier(C, NC_ANIMATION | ND_KEYFRAME | NA_REMOVED, NULL); } return (success) ? OPERATOR_FINISHED : OPERATOR_CANCELLED; @@ -1850,7 +1850,7 @@ static int clear_key_button_exec(bContext *C, wmOperator *op) uiContextAnimUpdate(C); /* send notifiers that keyframes have been changed */ - WM_event_add_notifier(C, NC_ANIMATION | ND_KEYFRAME | NA_EDITED, NULL); + WM_event_add_notifier(C, NC_ANIMATION | ND_KEYFRAME | NA_REMOVED, NULL); } return (success) ? OPERATOR_FINISHED : OPERATOR_CANCELLED; diff --git a/source/blender/editors/animation/keyingsets.c b/source/blender/editors/animation/keyingsets.c index 3e7009337a8..53ebd658ca2 100644 --- a/source/blender/editors/animation/keyingsets.c +++ b/source/blender/editors/animation/keyingsets.c @@ -1009,7 +1009,7 @@ int ANIM_apply_keyingset(bContext *C, ListBase *dsources, bAction *act, KeyingSe } /* send notifiers for updates (this doesn't require context to work!) */ - WM_main_add_notifier(NC_ANIMATION | ND_KEYFRAME | NA_EDITED, NULL); + WM_main_add_notifier(NC_ANIMATION | ND_KEYFRAME | NA_ADDED, NULL); } /* return the number of channels successfully affected */ diff --git a/source/blender/editors/space_action/action_edit.c b/source/blender/editors/space_action/action_edit.c index 6e040371037..eb9f5d2d6ce 100644 --- a/source/blender/editors/space_action/action_edit.c +++ b/source/blender/editors/space_action/action_edit.c @@ -122,7 +122,7 @@ static int act_new_exec(bContext *C, wmOperator *UNUSED(op)) } /* set notifier that keyframes have changed */ - WM_event_add_notifier(C, NC_ANIMATION | ND_KEYFRAME | NA_EDITED, NULL); + WM_event_add_notifier(C, NC_ANIMATION | ND_KEYFRAME | NA_ADDED, NULL); return OPERATOR_FINISHED; } @@ -680,7 +680,7 @@ static int actkeys_insertkey_exec(bContext *C, wmOperator *op) ANIM_editkeyframes_refresh(&ac); /* set notifier that keyframes have changed */ - WM_event_add_notifier(C, NC_ANIMATION | ND_KEYFRAME | NA_EDITED, NULL); + WM_event_add_notifier(C, NC_ANIMATION | ND_KEYFRAME | NA_ADDED, NULL); return OPERATOR_FINISHED; } @@ -753,7 +753,7 @@ static int actkeys_duplicate_exec(bContext *C, wmOperator *UNUSED(op)) ANIM_editkeyframes_refresh(&ac); /* set notifier that keyframes have changed */ - WM_event_add_notifier(C, NC_ANIMATION | ND_KEYFRAME | NA_EDITED, NULL); + WM_event_add_notifier(C, NC_ANIMATION | ND_KEYFRAME | NA_ADDED, NULL); return OPERATOR_FINISHED; } @@ -843,7 +843,7 @@ static int actkeys_delete_exec(bContext *C, wmOperator *UNUSED(op)) ANIM_editkeyframes_refresh(&ac); /* set notifier that keyframes have changed */ - WM_event_add_notifier(C, NC_ANIMATION | ND_KEYFRAME | NA_EDITED, NULL); + WM_event_add_notifier(C, NC_ANIMATION | ND_KEYFRAME | NA_REMOVED, NULL); return OPERATOR_FINISHED; } diff --git a/source/blender/editors/space_action/space_action.c b/source/blender/editors/space_action/space_action.c index edbe17065f1..f9f5b0c4919 100644 --- a/source/blender/editors/space_action/space_action.c +++ b/source/blender/editors/space_action/space_action.c @@ -374,11 +374,20 @@ static void action_listener(bScreen *UNUSED(sc), ScrArea *sa, wmNotifier *wmn) saction->flag |= SACTION_TEMP_NEEDCHANSYNC; ED_area_tag_refresh(sa); } - /* for selection changes of animation data, we can just redraw... otherwise autocolor might need to be done again */ - else if (ELEM(wmn->data, ND_KEYFRAME, ND_ANIMCHAN) && (wmn->action == NA_SELECTED)) - ED_area_tag_redraw(sa); - else + /* autocolor only really needs to change when channels are added/removed, or previously hidden stuff appears + * (assume for now that if just adding these works, that will be fine) + */ + else if (((wmn->data == ND_KEYFRAME) && ELEM(wmn->action, NA_ADDED, NA_REMOVED)) || + ((wmn->data == ND_ANIMCHAN) && (wmn->action != NA_SELECTED))) + { ED_area_tag_refresh(sa); + } + /* for simple edits to the curve data though (or just plain selections), a simple redraw should work + * (see T39851 for an example of how this can go wrong) + */ + else { + ED_area_tag_redraw(sa); + } break; case NC_SCENE: switch (wmn->data) { @@ -469,7 +478,7 @@ static void action_header_area_listener(bScreen *UNUSED(sc), ScrArea *sa, ARegio case NC_ANIMATION: switch (wmn->data) { case ND_KEYFRAME: - saction->flag |= SACTION_TEMP_NEEDCHANSYNC; + //saction->flag |= SACTION_TEMP_NEEDCHANSYNC; ED_region_tag_redraw(ar); break; } diff --git a/source/blender/editors/space_graph/graph_edit.c b/source/blender/editors/space_graph/graph_edit.c index 7369032aebe..14148802aae 100644 --- a/source/blender/editors/space_graph/graph_edit.c +++ b/source/blender/editors/space_graph/graph_edit.c @@ -532,7 +532,7 @@ static int graphkeys_insertkey_exec(bContext *C, wmOperator *op) ANIM_editkeyframes_refresh(&ac); /* set notifier that keyframes have changed */ - WM_event_add_notifier(C, NC_ANIMATION | ND_KEYFRAME | NA_EDITED, NULL); + WM_event_add_notifier(C, NC_ANIMATION | ND_KEYFRAME | NA_ADDED, NULL); return OPERATOR_FINISHED; } @@ -839,7 +839,7 @@ static int graphkeys_duplicate_exec(bContext *C, wmOperator *UNUSED(op)) ANIM_editkeyframes_refresh(&ac); /* set notifier that keyframes have changed */ - WM_event_add_notifier(C, NC_ANIMATION | ND_KEYFRAME | NA_EDITED, NULL); + WM_event_add_notifier(C, NC_ANIMATION | ND_KEYFRAME | NA_ADDED, NULL); return OPERATOR_FINISHED; } @@ -924,7 +924,7 @@ static int graphkeys_delete_exec(bContext *C, wmOperator *UNUSED(op)) ANIM_editkeyframes_refresh(&ac); /* set notifier that keyframes have changed */ - WM_event_add_notifier(C, NC_ANIMATION | ND_KEYFRAME | NA_EDITED, NULL); + WM_event_add_notifier(C, NC_ANIMATION | ND_KEYFRAME | NA_REMOVED, NULL); return OPERATOR_FINISHED; } |