Merge branch 'blender2.8' into soc-2018-bevel
[blender.git] / source / blender / editors / mesh / editmesh_utils.c
index 16c1a2c45ec8c1be0fa9c33de0908fa72247d040..9524d1b0791d4fb937aa531e89110d236559bcfc 100644 (file)
@@ -43,6 +43,7 @@
 
 #include "BKE_DerivedMesh.h"
 #include "BKE_context.h"
+#include "BKE_main.h"
 #include "BKE_mesh.h"
 #include "BKE_mesh_mapping.h"
 #include "BKE_report.h"
@@ -172,6 +173,10 @@ bool EDBM_op_finish(BMEditMesh *em, BMOperator *bmop, wmOperator *op, const bool
                        BKE_editmesh_tessface_calc(em);
                }
 
+               if (em->ob) {
+                       DEG_id_tag_update(&((Mesh *)em->ob->data)->id, DEG_TAG_COPY_ON_WRITE);
+               }
+
                return false;
        }
        else {
@@ -326,7 +331,7 @@ void EDBM_mesh_make(Object *ob, const int select_mode, const bool add_key_index)
  * \warning This can invalidate the #DerivedMesh cache of other objects (for linked duplicates).
  * Most callers should run #DEG_id_tag_update on \a ob->data, see: T46738, T46913
  */
-void EDBM_mesh_load(Object *ob)
+void EDBM_mesh_load(Main *bmain, Object *ob)
 {
        Mesh *me = ob->data;
        BMesh *bm = me->edit_btmesh->bm;
@@ -338,7 +343,7 @@ void EDBM_mesh_load(Object *ob)
        }
 
        BM_mesh_bm_to_me(
-               bm, me, (&(struct BMeshToMeshParams){
+               bmain, bm, me, (&(struct BMeshToMeshParams){
                    .calc_object_remap = true,
                }));
 
@@ -358,7 +363,7 @@ void EDBM_mesh_load(Object *ob)
         * cycles.
         */
 #if 0
-       for (Object *other_object = G.main->object.first;
+       for (Object *other_object = bmain->object.first;
             other_object != NULL;
             other_object = other_object->id.next)
        {