static void make_prim_finish(bContext *C, int *state, int enter_editmode) { Object *obedit = CTX_data_edit_object(C); BMEditMesh *em = BMEdit_FromObject(obedit); /* Primitive has all verts selected, use vert select flush * to push this up to edges & faces. */ EDBM_selectmode_flush_ex(em, SCE_SELECT_VERTEX); EDBM_update_generic(C, em, TRUE); /* userdef */ if (*state && !enter_editmode) { ED_object_exit_editmode(C, EM_FREEDATA); /* adding EM_DO_UNDO messes up operator redo */ } WM_event_add_notifier(C, NC_OBJECT | ND_DRAW, obedit); }
static void make_prim_finish(bContext *C, Object *obedit, bool was_editmode, int enter_editmode) { BMEditMesh *em = BKE_editmesh_from_object(obedit); const int exit_editmode = ((was_editmode == true) && (enter_editmode == false)); /* Primitive has all verts selected, use vert select flush * to push this up to edges & faces. */ EDBM_selectmode_flush_ex(em, SCE_SELECT_VERTEX); /* only recalc editmode tessface if we are staying in editmode */ EDBM_update_generic(em, !exit_editmode, true); /* userdef */ if (exit_editmode) { ED_object_editmode_exit(C, EM_FREEDATA); /* adding EM_DO_UNDO messes up operator redo */ } WM_event_add_notifier(C, NC_OBJECT | ND_DRAW, obedit); }