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:
Diffstat (limited to 'source/blender/editors/space_view3d/view3d_header.c')
-rw-r--r--source/blender/editors/space_view3d/view3d_header.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/source/blender/editors/space_view3d/view3d_header.c b/source/blender/editors/space_view3d/view3d_header.c
index 2ee4f7a9e55..2656127d73c 100644
--- a/source/blender/editors/space_view3d/view3d_header.c
+++ b/source/blender/editors/space_view3d/view3d_header.c
@@ -139,10 +139,11 @@ static void handle_view3d_lock(bContext *C)
static int view3d_layers_exec(bContext *C, wmOperator *op)
{
- Main *bmain= CTX_data_main(C);
Scene *scene= CTX_data_scene(C);
ScrArea *sa= CTX_wm_area(C);
View3D *v3d= sa->spacedata.first;
+ Base *base;
+ int oldlay= v3d->lay;
int nr= RNA_int_get(op->ptr, "nr");
int toggle= RNA_boolean_get(op->ptr, "toggle");
@@ -200,8 +201,14 @@ static int view3d_layers_exec(bContext *C, wmOperator *op)
if(v3d->scenelock) handle_view3d_lock(C);
- /* new layers might need unflushed events events */
- DAG_scene_update_flags(bmain, scene, v3d->lay, FALSE); /* tags all that moves and flushes */
+ /* XXX new layers might need updates, there is no provision yet to detect if that's needed */
+ oldlay= ~oldlay & v3d->lay;
+ for (base= scene->base.first; base; base= base->next) {
+ if(base->lay & oldlay)
+ base->object->recalc= OB_RECALC_OB|OB_RECALC_DATA;
+ if(base->lay & oldlay)
+ printf("recalc %s\n", base->object->id.name+2);
+ }
ED_area_tag_redraw(sa);