Fix missing updates when muting/soloing/reordering NLA tracks.
authorAlexander Gavrilov <angavrilov@gmail.com>
Mon, 7 Jan 2019 14:33:47 +0000 (17:33 +0300)
committerAlexander Gavrilov <angavrilov@gmail.com>
Mon, 7 Jan 2019 14:35:51 +0000 (17:35 +0300)
source/blender/editors/animation/anim_channels_defines.c
source/blender/editors/animation/anim_channels_edit.c
source/blender/editors/space_view3d/space_view3d.c

index c00b1a4..e7416b9 100644 (file)
@@ -4064,7 +4064,7 @@ static void achannel_setting_flush_widget_cb(bContext *C, void *ale_npoin, void
 
        /* tag copy-on-write flushing (so that the settings will have an effect) */
        if (ale_setting->id) {
-               DEG_id_tag_update(ale_setting->id, ID_RECALC_COPY_ON_WRITE);
+               DEG_id_tag_update(ale_setting->id, ID_RECALC_ANIMATION | ID_RECALC_COPY_ON_WRITE);
        }
        if (ale_setting->adt && ale_setting->adt->action) {
                /* action is it's own datablock, so has to be tagged specifically... */
@@ -4113,7 +4113,7 @@ static void achannel_nlatrack_solo_widget_cb(bContext *C, void *ale_poin, void *
 
        /* send notifiers */
        DEG_id_tag_update(ale->id, ID_RECALC_ANIMATION | ID_RECALC_COPY_ON_WRITE);
-       WM_event_add_notifier(C, NC_ANIMATION | ND_ANIMCHAN | NA_RENAME, NULL);
+       WM_event_add_notifier(C, NC_ANIMATION | ND_NLA | NA_EDITED, NULL);
 }
 
 /* callback for widget sliders - insert keyframes */
index 26de5c3..2d1c307 100644 (file)
@@ -1355,6 +1355,7 @@ static int animchannels_rearrange_exec(bContext *C, wmOperator *op)
                        switch (ac.datatype) {
                                case ANIMCONT_NLA: /* NLA-tracks only */
                                        rearrange_nla_channels(&ac, adt, mode);
+                                       DEG_id_tag_update(ale->id, ID_RECALC_ANIMATION | ID_RECALC_COPY_ON_WRITE);
                                        break;
 
                                case ANIMCONT_DRIVERS: /* Drivers list only */
index 2685fb4..79e5026 100644 (file)
@@ -794,7 +794,7 @@ static void view3d_main_region_listener(
                                                ED_region_tag_redraw(ar);
                                        break;
                                case ND_ANIMCHAN:
-                                       if (wmn->action == NA_SELECTED)
+                                       if (ELEM(wmn->action, NA_EDITED, NA_ADDED, NA_REMOVED, NA_SELECTED))
                                                ED_region_tag_redraw(ar);
                                        break;
                        }