[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [20763] trunk/blender/source/blender/src: Fix for bug #18855: in texture node editor, "Add New" for world
Brecht Van Lommel
brecht at blender.org
Tue Jun 9 19:56:07 CEST 2009
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;
More information about the Bf-blender-cvs
mailing list