diff options
Diffstat (limited to 'source/blender/editors/animation/anim_channels_edit.c')
-rw-r--r-- | source/blender/editors/animation/anim_channels_edit.c | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/source/blender/editors/animation/anim_channels_edit.c b/source/blender/editors/animation/anim_channels_edit.c index b7ed20d9ec5..35c743a3af3 100644 --- a/source/blender/editors/animation/anim_channels_edit.c +++ b/source/blender/editors/animation/anim_channels_edit.c @@ -898,6 +898,23 @@ static AnimChanRearrangeFp rearrange_get_mode_func(eRearrangeAnimChan_Mode mode) } } +/* get rearranging function, given 'rearrange' mode (grease pencil is inverted) */ +static AnimChanRearrangeFp rearrange_gpencil_get_mode_func(eRearrangeAnimChan_Mode mode) +{ + switch (mode) { + case REARRANGE_ANIMCHAN_TOP: + return rearrange_island_bottom; + case REARRANGE_ANIMCHAN_UP: + return rearrange_island_down; + case REARRANGE_ANIMCHAN_DOWN: + return rearrange_island_up; + case REARRANGE_ANIMCHAN_BOTTOM: + return rearrange_island_top; + default: + return NULL; + } +} + /* Rearrange Islands Generics ------------------------------------- */ /* add channel into list of islands */ @@ -1331,7 +1348,7 @@ static void rearrange_gpencil_channels(bAnimContext *ac, eRearrangeAnimChan_Mode int filter; /* get rearranging function */ - AnimChanRearrangeFp rearrange_func = rearrange_get_mode_func(mode); + AnimChanRearrangeFp rearrange_func = rearrange_gpencil_get_mode_func(mode); if (rearrange_func == NULL) { return; @@ -1364,6 +1381,8 @@ static void rearrange_gpencil_channels(bAnimContext *ac, eRearrangeAnimChan_Mode /* free GPD channel data */ ANIM_animdata_freelist(&anim_data); + + WM_main_add_notifier(NC_GPENCIL | ND_DATA | NA_EDITED, NULL); } /* ------------------- */ |