diff options
author | Ton Roosendaal <ton@blender.org> | 2006-07-05 15:33:09 +0400 |
---|---|---|
committer | Ton Roosendaal <ton@blender.org> | 2006-07-05 15:33:09 +0400 |
commit | 8640615ac6386dbf6372be286115321c06878ede (patch) | |
tree | 2a3a93fd3b95f9fa165d445fd1881e5ae2d84711 /source | |
parent | 6f2e6f07212a1ffe75668d903ce10c1a6a4b2033 (diff) |
Bug #4616
Node Editor: selecting Material buttons in header crashed, when no buttons
window was opened. Code didn't check for proper window it was called from.
Also: autoname "Cyan" was spelled dutch! :)
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/blenkernel/intern/material.c | 2 | ||||
-rw-r--r-- | source/blender/src/headerbuttons.c | 44 |
2 files changed, 36 insertions, 10 deletions
diff --git a/source/blender/blenkernel/intern/material.c b/source/blender/blenkernel/intern/material.c index ad9b4db8844..a58f9b472ee 100644 --- a/source/blender/blenkernel/intern/material.c +++ b/source/blender/blenkernel/intern/material.c @@ -701,7 +701,7 @@ char colname_array[125][20]= { "LightBlue","Purple","MediumOrchid","Magenta","Magenta", "RoyalBlue","SlateBlue","MediumOrchid","Orchid","Magenta", "DeepSkyBlue","LightSteelBlue","LightSkyBlue","Violet","LightPink", -"Cyaan","DarkTurquoise","SkyBlue","Grey","Snow", +"Cyan","DarkTurquoise","SkyBlue","Grey","Snow", "Mint","Mint","Aquamarine","MintCream","Ivory", "Blue","Blue","DarkMagenta","DarkOrchid","Magenta", "SkyBlue","RoyalBlue","LightSlateBlue","MediumOrchid","Magenta", diff --git a/source/blender/src/headerbuttons.c b/source/blender/src/headerbuttons.c index 2d0418d2c72..2f11a624bca 100644 --- a/source/blender/src/headerbuttons.c +++ b/source/blender/src/headerbuttons.c @@ -576,10 +576,10 @@ void do_global_buttons(unsigned short event) scrarea_queue_headredraw(curarea); break; case B_EDITBROWSE: - if(ob==0) return; + if(ob==NULL) return; if(ob->id.lib) return; id= ob->data; - if(id==0) return; + if(id==NULL) return; if(G.buts->menunr== -2) { activate_databrowse((ID *)G.buts->lockpoin, GS(id->name), 0, B_EDITBROWSE, &G.buts->menunr, do_global_buttons); @@ -656,14 +656,30 @@ void do_global_buttons(unsigned short event) break; case B_MATBROWSE: - if(G.buts->menunr== -2) { - activate_databrowse((ID *)G.buts->lockpoin, ID_MA, 0, B_MATBROWSE, &G.buts->menunr, do_global_buttons); + { + void *lockpoin= NULL; + 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; + lockpoin= snode->id; + } + else if(G.buts) { + menunr= &G.buts->menunr; + lockpoin= G.buts->lockpoin; + } + else return; + + if(*menunr== -2) { + activate_databrowse((ID *)lockpoin, ID_MA, 0, B_MATBROWSE, menunr, do_global_buttons); return; } - if(G.buts->menunr < 0) return; + if(*menunr < 0) return; - if(G.buts->pin) { + if(0) { /* future pin */ } else { @@ -675,7 +691,7 @@ void do_global_buttons(unsigned short event) idtest= G.main->mat.first; while(idtest) { - if(nr==G.buts->menunr) { + if(nr== *menunr) { break; } nr++; @@ -699,9 +715,10 @@ void do_global_buttons(unsigned short event) } } + } break; case B_MATDELETE: - if(G.buts->pin) { + if(0) { /* future pin */ } else { @@ -1192,10 +1209,19 @@ void do_global_buttons(unsigned short event) break; case B_AUTOMATNAME: - automatname(G.buts->lockpoin); + /* this is called now from Node editor too, buttons might not exist */ + if(curarea->spacetype==SPACE_NODE) { + SpaceNode *snode= curarea->spacedata.first; + automatname((Material *)snode->id); + } + else if(G.buts) { + automatname(G.buts->lockpoin); + } + else return; BIF_undo_push("Auto name"); allqueue(REDRAWBUTSSHADING, 0); + allqueue(REDRAWNODE, 0); allqueue(REDRAWOOPS, 0); break; case B_AUTOTEXNAME: |