diff options
author | Campbell Barton <ideasman42@gmail.com> | 2007-09-01 03:23:38 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2007-09-01 03:23:38 +0400 |
commit | 50ea5681794e1494d5b293539ff52ba3ca78c349 (patch) | |
tree | 9507f2a5f3d9850f590d85f70e15fd6183fca117 /source | |
parent | 32fddfbe064e6f39d77039a3294bebb8c502f728 (diff) |
Bugfix for [#7018] Hiding, unhiding a spot lamp and then setting it to buf shadow segfaults
buttons were not redrawing so it was possible to use them without an active object, this crashed blender.
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/src/editobject.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/source/blender/src/editobject.c b/source/blender/src/editobject.c index c4736a84837..757ca322bdd 100644 --- a/source/blender/src/editobject.c +++ b/source/blender/src/editobject.c @@ -5486,14 +5486,17 @@ int object_data_is_libdata(Object *ob) void hide_objects(int select) { Base *base; - int changed = 0; + short changed = 0, changed_act = 0; for(base = FIRSTBASE; base; base=base->next){ if(TESTBASELIB(base)==select){ base->flag &= ~SELECT; base->object->flag = base->flag; base->object->restrictflag |= OB_RESTRICT_VIEW; changed = 1; - if (base==BASACT) BASACT= NULL; + if (base==BASACT) { + BASACT= NULL; + changed_act = 1; + } } } if (changed) { @@ -5502,6 +5505,12 @@ void hide_objects(int select) DAG_scene_sort(G.scene); allqueue(REDRAWVIEW3D,0); allqueue(REDRAWOOPS,0); + allqueue(REDRAWDATASELECT,0); + if (changed_act) { /* these spaces depend on the active object */ + allqueue(REDRAWBUTSALL,0); + allqueue(REDRAWIPO,0); + allqueue(REDRAWACTION,0); + } countall(); } } |