Revision: 20763
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=20763
Author:   blendix
Date:     2009-06-09 19:56:07 +0200 (Tue, 09 Jun 2009)

Log Message:
-----------
Fix for bug #18855: in texture node editor, "Add New" for world
did not set texture in correct place and crashed without an active
object.

Modified Paths:
--------------
    trunk/blender/source/blender/src/header_node.c
    trunk/blender/source/blender/src/headerbuttons.c

Modified: trunk/blender/source/blender/src/header_node.c
===================================================================
--- trunk/blender/source/blender/src/header_node.c      2009-06-09 17:04:50 UTC 
(rev 20762)
+++ trunk/blender/source/blender/src/header_node.c      2009-06-09 17:56:07 UTC 
(rev 20763)
@@ -804,8 +804,12 @@
                if(snode->from) {
                        
                        /* can't use unlink etc here, code requires buttons 
context */
-                       xco= std_libbuttons(block, xco, 0, 0, NULL, 
B_TEXBROWSE, ID_TE, 1, snode->id, snode->from, &(snode->menunr), 
-                                          0, 0, 0, B_AUTOTEXNAME, B_KEEPDATA);
+                       if(snode->texfrom == SNODE_TEX_WORLD)
+                               xco= std_libbuttons(block, xco, 0, 0, NULL, 
B_WTEXBROWSE, ID_TE, 1, snode->id, snode->from, &(snode->menunr), 
+                                                  0, 0, 0, B_AUTOTEXNAME, 
B_KEEPDATA);
+                       else
+                               xco= std_libbuttons(block, xco, 0, 0, NULL, 
B_TEXBROWSE, ID_TE, 1, snode->id, snode->from, &(snode->menunr), 
+                                                  0, 0, 0, B_AUTOTEXNAME, 
B_KEEPDATA);
                        
                        if(snode->id) {
                                Tex *tx= (Tex *)snode->id;

Modified: trunk/blender/source/blender/src/headerbuttons.c
===================================================================
--- trunk/blender/source/blender/src/headerbuttons.c    2009-06-09 17:04:50 UTC 
(rev 20762)
+++ trunk/blender/source/blender/src/headerbuttons.c    2009-06-09 17:56:07 UTC 
(rev 20763)
@@ -1226,8 +1226,20 @@
                
                break;
        case B_WTEXBROWSE:
+       {
+               short *menunr = 0;
+               
+               /* this is called now from Node editor too, buttons might not 
exist */
+               if(curarea->spacetype==SPACE_NODE) {
+                       SpaceNode *snode = curarea->spacedata.first;
+                       menunr = &snode->menunr;
+               }
+               else if(G.buts) {
+                       menunr = &G.buts->texnr;
+               }
+               else return;
 
-               if(G.buts->texnr== -2) {
+               if(*menunr== -2) {
                        id= NULL;
                        wrld= G.scene->world;
                        if(wrld) {
@@ -1235,12 +1247,12 @@
                                if(mtex) id= (ID *)mtex->tex;
                        }
 
-                       activate_databrowse((ID *)id, ID_TE, 0, B_WTEXBROWSE, 
&G.buts->texnr, do_global_buttons);
+                       activate_databrowse((ID *)id, ID_TE, 0, B_WTEXBROWSE, 
menunr, do_global_buttons);
                        return;
                }
-               if(G.buts->texnr < 0) break;
+               if(*menunr < 0) break;
 
-               if(G.buts->pin) {
+               if(G.buts && G.buts->pin) {
                        
                }
                else {
@@ -1279,10 +1291,12 @@
                                allqueue(REDRAWBUTSSHADING, 0);
                                allqueue(REDRAWIPO, 0);
                                allqueue(REDRAWOOPS, 0);
+                               allqueue(REDRAWNODE, 0);
                                BIF_preview_changed(ID_WO);
                        }
                }
                break;
+       }
        case B_LAMPBROWSE:
                /* no lock */
                if(ob==0) return;


_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to