Bugfix #25761
authorTon Roosendaal <ton@blender.org>
Sat, 22 Jan 2011 15:34:20 +0000 (15:34 +0000)
committerTon Roosendaal <ton@blender.org>
Sat, 22 Jan 2011 15:34:20 +0000 (15:34 +0000)
Move-to-layer in 3D window didn't work for linked library objects.
That should be possible, as was in 2.49. Layer property is local.

source/blender/editors/object/object_relations.c

index a0d8e3c9733b36d68474c0946479ad113abb70a8..704efb59d3de57448ea3686574c93547b258478e 100644 (file)
@@ -1050,7 +1050,8 @@ static unsigned int move_to_layer_init(bContext *C, wmOperator *op)
        unsigned int lay= 0;
 
        if(!RNA_property_is_set(op->ptr, "layers")) {
-               CTX_DATA_BEGIN(C, Base*, base, selected_editable_bases) {
+               /* note: layers are set in bases, library objects work for this */
+               CTX_DATA_BEGIN(C, Base*, base, selected_bases) {
                        lay |= base->lay;
                }
                CTX_DATA_END;
@@ -1098,8 +1099,8 @@ static int move_to_layer_exec(bContext *C, wmOperator *op)
        
        if(v3d && v3d->localvd) {
                /* now we can move out of localview. */
-               // XXX if (!okee("Move from localview")) return;
-               CTX_DATA_BEGIN(C, Base*, base, selected_editable_bases) {
+               /* note: layers are set in bases, library objects work for this */
+               CTX_DATA_BEGIN(C, Base*, base, selected_bases) {
                        lay= base->lay & ~v3d->lay;
                        base->lay= lay;
                        base->object->lay= lay;
@@ -1111,7 +1112,8 @@ static int move_to_layer_exec(bContext *C, wmOperator *op)
        }
        else {
                /* normal non localview operation */
-               CTX_DATA_BEGIN(C, Base*, base, selected_editable_bases) {
+               /* note: layers are set in bases, library objects work for this */
+               CTX_DATA_BEGIN(C, Base*, base, selected_bases) {
                        /* upper byte is used for local view */
                        local= base->lay & 0xFF000000;  
                        base->lay= lay + local;