GP: Set Dopesheet layers in Top-Down order
authorAntonioya <blendergit@gmail.com>
Tue, 16 Oct 2018 08:37:18 +0000 (10:37 +0200)
committerAntonioya <blendergit@gmail.com>
Tue, 16 Oct 2018 08:37:18 +0000 (10:37 +0200)
The layers are Top-Down and the dopesheet must use the same order.

source/blender/editors/animation/anim_filter.c
source/blender/editors/animation/keyframes_draw.c

index 556e88cdf8f10026643198aa060ea49faa62e671..e59f563c2615d34a95632988bc2ba12bb2ce614b 100644 (file)
@@ -1625,8 +1625,8 @@ static size_t animdata_filter_gpencil_layers_data(ListBase *anim_data, bDopeShee
        bGPDlayer *gpl;
        size_t items = 0;
 
-       /* loop over layers as the conditions are acceptable */
-       for (gpl = gpd->layers.first; gpl; gpl = gpl->next) {
+       /* loop over layers as the conditions are acceptable (top-Down order) */
+       for (gpl = gpd->layers.last; gpl; gpl = gpl->prev) {
                /* only if selected */
                if (ANIMCHANNEL_SELOK(SEL_GPL(gpl)) ) {
                        /* only if editable */
index 1941e98b865aaf39bffcd8b5a18805e0cc822f7b..e6245fffe47ef2f91f19430e15e799fd4cea74ec 100644 (file)
@@ -1033,7 +1033,7 @@ void gpencil_to_keylist(bDopeSheet *ads, bGPdata *gpd, DLRBT_Tree *keys, const b
 
        if (gpd && keys) {
                /* for now, just aggregate out all the frames, but only for visible layers */
-               for (gpl = gpd->layers.first; gpl; gpl = gpl->next) {
+               for (gpl = gpd->layers.last; gpl; gpl = gpl->prev) {
                        if ((gpl->flag & GP_LAYER_HIDE) == 0) {
                                if ((!active) || ((active) && (gpl->flag & GP_LAYER_SELECT))) {
                                        gpl_to_keylist(ads, gpl, keys);