Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source/blender/src/header_node.c8
-rw-r--r--source/blender/src/headerbuttons.c22
2 files changed, 24 insertions, 6 deletions
diff --git a/source/blender/src/header_node.c b/source/blender/src/header_node.c
index c23913bb97c..1a8b7d44a7a 100644
--- a/source/blender/src/header_node.c
+++ b/source/blender/src/header_node.c
@@ -804,8 +804,12 @@ void node_buttons(ScrArea *sa)
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;
diff --git a/source/blender/src/headerbuttons.c b/source/blender/src/headerbuttons.c
index 17d16924ae6..27d30816c09 100644
--- a/source/blender/src/headerbuttons.c
+++ b/source/blender/src/headerbuttons.c
@@ -1226,8 +1226,20 @@ void do_global_buttons(unsigned short event)
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 @@ void do_global_buttons(unsigned short event)
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 @@ void do_global_buttons(unsigned short event)
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;