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:
authorJiri Hnidek <jiri.hnidek@tul.cz>2006-10-30 17:59:30 +0300
committerJiri Hnidek <jiri.hnidek@tul.cz>2006-10-30 17:59:30 +0300
commite944ed2f4a5c7a0452a7e9d431bd40ad5cbc7d9a (patch)
tree6446e3e63715c271e1f1fd93936f3473eccc8e87 /source/blender/src/outliner.c
parentb17ce5e24a8fd099be72b753fbd98aa4448abfd0 (diff)
- bug fix #5141, blender doesn't crash, when you try to unsubscribe twice
from verse node in outliner
Diffstat (limited to 'source/blender/src/outliner.c')
-rw-r--r--source/blender/src/outliner.c28
1 files changed, 19 insertions, 9 deletions
diff --git a/source/blender/src/outliner.c b/source/blender/src/outliner.c
index 237c4144221..45e84c6b735 100644
--- a/source/blender/src/outliner.c
+++ b/source/blender/src/outliner.c
@@ -1656,15 +1656,25 @@ static int do_outliner_mouse_event(SpaceOops *soops, TreeElement *te, short even
}
else if(te->idcode==ID_VN) {
struct VNode *vnode = (VNode*)te->directdata;
- event = pupmenu("VerseNode %t| Subscribe %x1| Unsubscribe %x2");
- switch(event) {
- case 1:
- b_verse_pop_node(vnode);
- break;
- case 2:
- /* Global */
- b_verse_unsubscribe(vnode);
- break;
+ if (vnode->type==V_NT_OBJECT || vnode->type==V_NT_BITMAP) {
+ char subscribed = 0;
+ if((vnode->type==V_NT_OBJECT) && (((VObjectData*)vnode->data)->object!=NULL))
+ subscribed = 1;
+ if((vnode->type==V_NT_BITMAP) && (((VBitmapData*)vnode->data)->image!=NULL))
+ subscribed = 1;
+ if(subscribed==1)
+ event = pupmenu("VerseNode %t| Unsubscribe %x2");
+ else
+ event = pupmenu("VerseNode %t| Subscribe %x1");
+ switch(event) {
+ case 1:
+ b_verse_pop_node(vnode);
+ break;
+ case 2:
+ /* Global */
+ b_verse_unsubscribe(vnode);
+ break;
+ }
}
}
else if(te->idcode==ID_MS) {