[Bf-blender-cvs] [81f817e7b45] blender-v2.83-release: Fix T72088: Missing header redraw when transform changes snap

Campbell Barton noreply at git.blender.org
Tue Jun 2 10:05:44 CEST 2020


Commit: 81f817e7b453548f748e3e8581c95547d3978400
Author: Campbell Barton
Date:   Tue Jun 2 18:00:52 2020 +1000
Branches: blender-v2.83-release
https://developer.blender.org/rB81f817e7b453548f748e3e8581c95547d3978400

Fix T72088: Missing header redraw when transform changes snap

===================================================================

M	source/blender/editors/transform/transform.c
M	source/blender/editors/transform/transform.h
M	source/blender/editors/transform/transform_generics.c

===================================================================

diff --git a/source/blender/editors/transform/transform.c b/source/blender/editors/transform/transform.c
index d376c71d867..d0973cf8298 100644
--- a/source/blender/editors/transform/transform.c
+++ b/source/blender/editors/transform/transform.c
@@ -49,6 +49,7 @@
 #include "ED_space_api.h"
 
 #include "WM_api.h"
+#include "WM_message.h"
 #include "WM_types.h"
 
 #include "UI_interface_icons.h"
@@ -1716,11 +1717,14 @@ void saveTransform(bContext *C, TransInfo *t, wmOperator *op)
   if (t->flag & T_MODAL) {
     /* do we check for parameter? */
     if (transformModeUseSnap(t)) {
-      if (t->modifiers & MOD_SNAP) {
-        ts->snap_flag |= SCE_SNAP;
-      }
-      else {
-        ts->snap_flag &= ~SCE_SNAP;
+      if (!(t->modifiers & MOD_SNAP) != !(ts->snap_flag & SCE_SNAP)) {
+        if (t->modifiers & MOD_SNAP) {
+          ts->snap_flag |= SCE_SNAP;
+        }
+        else {
+          ts->snap_flag &= ~SCE_SNAP;
+        }
+        WM_msg_publish_rna_prop(t->mbus, &t->scene->id, ts, ToolSettings, use_snap);
       }
     }
   }
diff --git a/source/blender/editors/transform/transform.h b/source/blender/editors/transform/transform.h
index 701e068d3fa..7a68266ce6c 100644
--- a/source/blender/editors/transform/transform.h
+++ b/source/blender/editors/transform/transform.h
@@ -581,6 +581,7 @@ typedef struct TransInfo {
   void *view;
   /** Only valid (non null) during an operator called function. */
   struct bContext *context;
+  struct wmMsgBus *mbus;
   struct ScrArea *area;
   struct ARegion *region;
   struct Depsgraph *depsgraph;
diff --git a/source/blender/editors/transform/transform_generics.c b/source/blender/editors/transform/transform_generics.c
index 05318a5c1d3..f42a15a0ec3 100644
--- a/source/blender/editors/transform/transform_generics.c
+++ b/source/blender/editors/transform/transform_generics.c
@@ -1380,6 +1380,7 @@ void initTransInfo(bContext *C, TransInfo *t, wmOperator *op, const wmEvent *eve
   bGPdata *gpd = CTX_data_gpencil_data(C);
   PropertyRNA *prop;
 
+  t->mbus = CTX_wm_message_bus(C);
   t->depsgraph = CTX_data_depsgraph_pointer(C);
   t->scene = sce;
   t->view_layer = view_layer;



More information about the Bf-blender-cvs mailing list