diff options
author | Campbell Barton <ideasman42@gmail.com> | 2018-05-15 11:25:49 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2018-05-15 11:25:49 +0300 |
commit | f1bc8991461fcda33eb34820bd3aa153f6122c5b (patch) | |
tree | f6e2c533feeff8a9cf0ff36aef8035e95a5e0f0b /source/blender/editors/object/object_edit.c | |
parent | 55b241d32a2c3192a439c51aff99a0a248ca9ef2 (diff) | |
parent | 9636cab0098f96b9c6b6493fb7120f32d7506cd6 (diff) |
Merge branch 'master' into blender2.8
Diffstat (limited to 'source/blender/editors/object/object_edit.c')
-rw-r--r-- | source/blender/editors/object/object_edit.c | 27 |
1 files changed, 7 insertions, 20 deletions
diff --git a/source/blender/editors/object/object_edit.c b/source/blender/editors/object/object_edit.c index 4b13419f425..e87a24b3af0 100644 --- a/source/blender/editors/object/object_edit.c +++ b/source/blender/editors/object/object_edit.c @@ -268,14 +268,11 @@ bool ED_object_editmode_load(Object *obedit) } /** - * \param C: Can be NULL, only if #EM_DO_UNDO isn't set. * \param flag: - * - Only in exceptional cases should #EM_DO_UNDO NOT be in the flag. * - If #EM_FREEDATA isn't in the flag, use ED_object_editmode_load directly. */ -void ED_object_editmode_exit_ex(bContext *C, Scene *scene, Object *obedit, int flag) +void ED_object_editmode_exit_ex(Scene *scene, Object *obedit, int flag) { - BLI_assert(C || !(flag & EM_DO_UNDO)); const bool freedata = (flag & EM_FREEDATA) != 0; if (flag & EM_WAITCURSOR) waitcursor(1); @@ -307,16 +304,8 @@ void ED_object_editmode_exit_ex(bContext *C, Scene *scene, Object *obedit, int f /* also flush ob recalc, doesn't take much overhead, but used for particles */ DEG_id_tag_update(&obedit->id, OB_RECALC_OB | OB_RECALC_DATA); - - if (flag & EM_DO_UNDO) - ED_undo_push(C, "Editmode"); - if (C != NULL) { - WM_event_add_notifier(C, NC_SCENE | ND_MODE | NS_MODE_OBJECT, scene); - } - else { - WM_main_add_notifier(NC_SCENE | ND_MODE | NS_MODE_OBJECT, scene); - } + WM_main_add_notifier(NC_SCENE | ND_MODE | NS_MODE_OBJECT, scene); obedit->mode &= ~OB_MODE_EDIT; @@ -329,7 +318,7 @@ void ED_object_editmode_exit(bContext *C, int flag) { Scene *scene = CTX_data_scene(C); Object *obedit = CTX_data_edit_object(C); - ED_object_editmode_exit_ex(C, scene, obedit, flag); + ED_object_editmode_exit_ex(scene, obedit, flag); } void ED_object_editmode_enter_ex(Scene *scene, Object *ob, int flag) @@ -428,7 +417,6 @@ void ED_object_editmode_enter_ex(Scene *scene, Object *ob, int flag) } if (flag & EM_WAITCURSOR) waitcursor(0); - BLI_assert((flag & EM_DO_UNDO) == 0); } void ED_object_editmode_enter(bContext *C, int flag) @@ -446,8 +434,7 @@ void ED_object_editmode_enter(bContext *C, int flag) if (ob == NULL) return; if (ID_IS_LINKED(ob)) return; - ED_object_editmode_enter_ex(scene, ob, flag & ~EM_DO_UNDO); - if (flag & EM_DO_UNDO) ED_undo_push(C, "Enter Editmode"); + ED_object_editmode_enter_ex(scene, ob, flag); } static int editmode_toggle_exec(bContext *C, wmOperator *op) @@ -478,12 +465,12 @@ static int editmode_toggle_exec(bContext *C, wmOperator *op) } } else { - ED_object_editmode_exit(C, EM_FREEDATA | EM_WAITCURSOR); /* had EM_DO_UNDO but op flag calls undo too [#24685] */ + ED_object_editmode_exit(C, EM_FREEDATA | EM_WAITCURSOR); if ((obact->mode & mode_flag) == 0) { FOREACH_SELECTED_OBJECT_BEGIN(view_layer, ob) { if ((ob != obact) && (ob->type == obact->type)) { - ED_object_editmode_exit_ex(NULL, scene, ob, EM_FREEDATA | EM_WAITCURSOR); + ED_object_editmode_exit_ex(scene, ob, EM_FREEDATA | EM_WAITCURSOR); } } FOREACH_SELECTED_OBJECT_END; @@ -550,7 +537,7 @@ static int posemode_exec(bContext *C, wmOperator *op) } if (obact == CTX_data_edit_object(C)) { - ED_object_editmode_exit(C, EM_FREEDATA | EM_DO_UNDO); + ED_object_editmode_exit(C, EM_FREEDATA); is_mode_set = false; } |