Commit: 1b78f05b1ca466695b39d4fd60570790c1ab9e13 Author: Campbell Barton Date: Tue Apr 10 20:17:56 2018 +0200 Branches: blender2.8 https://developer.blender.org/rB1b78f05b1ca466695b39d4fd60570790c1ab9e13
Merge branch 'master' into blender2.8 =================================================================== =================================================================== diff --cc source/blender/editors/animation/anim_channels_edit.c index 2f9d32eadb6,8b922082fe8..4af8089ffea --- a/source/blender/editors/animation/anim_channels_edit.c +++ b/source/blender/editors/animation/anim_channels_edit.c @@@ -2725,8 -2720,8 +2725,8 @@@ static int mouse_anim_channels(bContex adt->flag |= ADT_UI_ACTIVE; /* ensure we exit editmode on whatever object was active before to avoid getting stuck there - T48747 */ - if (ob != sce->obedit) + if (ob != CTX_data_edit_object(C)) - ED_object_editmode_exit(C, EM_FREEDATA | EM_FREEUNDO | EM_WAITCURSOR | EM_DO_UNDO); + ED_object_editmode_exit(C, EM_FREEDATA | EM_WAITCURSOR | EM_DO_UNDO); notifierFlags |= (ND_ANIMCHAN | NA_SELECTED); } diff --cc source/blender/editors/include/ED_object.h index ebd9313f7c5,11dde2f5913..83119062203 --- a/source/blender/editors/include/ED_object.h +++ b/source/blender/editors/include/ED_object.h @@@ -119,13 -112,13 +119,14 @@@ struct Base *ED_object_add_duplicate(st void ED_object_parent(struct Object *ob, struct Object *parent, const int type, const char *substr); /* bitflags for enter/exit editmode */ - #define EM_FREEDATA 1 - #define EM_FREEUNDO 2 - #define EM_WAITCURSOR 4 - #define EM_DO_UNDO 8 - #define EM_IGNORE_LAYER 16 + enum { + EM_FREEDATA = (1 << 0), + EM_WAITCURSOR = (1 << 1), + EM_DO_UNDO = (1 << 2), + EM_IGNORE_LAYER = (1 << 3), + }; -void ED_object_editmode_exit_ex(struct bContext *C, struct Scene *scene, struct Object *obedit, int flag); +void ED_object_editmode_exit_ex( + struct bContext *C, struct Scene *scene, struct Object *obedit, int flag); void ED_object_editmode_exit(struct bContext *C, int flag); void ED_object_editmode_enter(struct bContext *C, int flag); bool ED_object_editmode_load(struct Object *obedit); diff --cc source/blender/editors/object/object_add.c index bfeb48f9308,c6820c83f95..4334a80cd39 --- a/source/blender/editors/object/object_add.c +++ b/source/blender/editors/object/object_add.c @@@ -432,15 -413,16 +432,15 @@@ Object *ED_object_add_type /* for as long scene has editmode... */ if (CTX_data_edit_object(C)) - ED_object_editmode_exit(C, EM_FREEDATA | EM_FREEUNDO | EM_WAITCURSOR | EM_DO_UNDO); /* freedata, and undo */ + ED_object_editmode_exit(C, EM_FREEDATA | EM_WAITCURSOR | EM_DO_UNDO); /* freedata, and undo */ /* deselects all, sets scene->basact */ - ob = BKE_object_add(bmain, scene, type, name); - BASACT->lay = ob->lay = layer; + ob = BKE_object_add(bmain, scene, view_layer, type, name); /* editor level activate, notifiers */ - ED_base_object_activate(C, BASACT); + ED_object_base_activate(C, view_layer->basact); /* more editor stuff */ - ED_object_base_init_transform(C, BASACT, loc, rot); + ED_object_base_init_transform(C, view_layer->basact, loc, rot); /* Ignore collisions by default for non-mesh objects */ if (type != OB_MESH) { diff --cc source/blender/editors/space_outliner/outliner_select.c index bfa8633ab7d,305afc206c4..6626eeb19f4 --- a/source/blender/editors/space_outliner/outliner_select.c +++ b/source/blender/editors/space_outliner/outliner_select.c @@@ -194,8 -240,8 +194,8 @@@ static eOLDrawState tree_element_set_ac } } - if (ob != scene->obedit) + if (ob != OBEDIT_FROM_VIEW_LAYER(view_layer)) - ED_object_editmode_exit(C, EM_FREEDATA | EM_FREEUNDO | EM_WAITCURSOR | EM_DO_UNDO); + ED_object_editmode_exit(C, EM_FREEDATA | EM_WAITCURSOR | EM_DO_UNDO); return OL_DRAWSEL_NORMAL; } @@@ -667,8 -714,8 +667,8 @@@ static eOLDrawState tree_element_active } if (set != OL_SETSEL_NONE) { - if (scene->obedit) + if (OBEDIT_FROM_VIEW_LAYER(view_layer)) - ED_object_editmode_exit(C, EM_FREEDATA | EM_FREEUNDO | EM_WAITCURSOR | EM_DO_UNDO); + ED_object_editmode_exit(C, EM_FREEDATA | EM_WAITCURSOR | EM_DO_UNDO); if (ob->mode & OB_MODE_POSE) ED_armature_exit_posemode(C, base); diff --cc source/blender/editors/space_outliner/outliner_tools.c index c19dcc0e1cb,e8275d597a6..735e2b5a37a --- a/source/blender/editors/space_outliner/outliner_tools.c +++ b/source/blender/editors/space_outliner/outliner_tools.c @@@ -419,10 -417,10 +419,10 @@@ static void object_delete_cb } // check also library later - if (scene->obedit == base->object) + if (ob == CTX_data_edit_object(C)) { - ED_object_editmode_exit(C, EM_FREEDATA | EM_FREEUNDO | EM_WAITCURSOR | EM_DO_UNDO); + ED_object_editmode_exit(C, EM_FREEDATA | EM_WAITCURSOR | EM_DO_UNDO); - - ED_base_object_free_and_unlink(CTX_data_main(C), scene, base); + } + ED_object_base_free_and_unlink(CTX_data_main(C), scene, ob); /* leave for ED_outliner_id_unref to handle */ #if 0 te->directdata = NULL; _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs