Fix T51913: Context tab for textures issue
authorDalai Felinto <dfelinto@gmail.com>
Tue, 27 Jun 2017 14:53:43 +0000 (16:53 +0200)
committerDalai Felinto <dfelinto@gmail.com>
Tue, 27 Jun 2017 14:56:43 +0000 (16:56 +0200)
The original code was doing a sanity check to see if existing index was
out of range. However the comparison was wrong.

So if the previous ct->user (active index of texture node) was larger
than then number of available texture nodes + 1 in the other material,
we would never re-set the index to 0.

Bug introduced on c31f74de6bb7.

There was an early attempt of fixing this (2b2ac5d3cc) but it was just working
by pure, luck. And failing in cases like the one from this bug report.

source/blender/editors/space_buttons/buttons_texture.c

index 72de7e5c81c6171222fe0b27eb9056785d6581f1..1d67ac620b0f9a3ae582eec4d051ec548dce176d 100644 (file)
@@ -470,7 +470,7 @@ void buttons_texture_context_compute(const bContext *C, SpaceButs *sbuts)
        }
        else {
                /* set one user as active based on active index */
-               if (ct->index == BLI_listbase_count_ex(&ct->users, ct->index + 1))
+               if (ct->index >= BLI_listbase_count_ex(&ct->users, ct->index + 1))
                        ct->index = 0;
 
                ct->user = BLI_findlink(&ct->users, ct->index);