Commit: 7eaed14fae865826ed4dc8053c42cb929f71dce7
Author: Campbell Barton
Date:   Fri Jan 10 13:04:52 2020 +1100
Branches: master
https://developer.blender.org/rB7eaed14fae865826ed4dc8053c42cb929f71dce7

Fix T72948: Smooth active tool gizmo vibrates

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

M       source/blender/editors/space_view3d/view3d_gizmo_tool_generic.c
M       source/blender/windowmanager/intern/wm_operator_utils.c

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

diff --git a/source/blender/editors/space_view3d/view3d_gizmo_tool_generic.c 
b/source/blender/editors/space_view3d/view3d_gizmo_tool_generic.c
index 0a4505b1bac..75d0384182b 100644
--- a/source/blender/editors/space_view3d/view3d_gizmo_tool_generic.c
+++ b/source/blender/editors/space_view3d/view3d_gizmo_tool_generic.c
@@ -22,6 +22,7 @@
 #include "BLI_utildefines.h"
 
 #include "BKE_context.h"
+#include "BKE_global.h"
 
 #include "ED_screen.h"
 #include "ED_transform.h"
@@ -61,6 +62,11 @@ static bool WIDGETGROUP_tool_generic_poll(const bContext *C, 
wmGizmoGroupType *g
     return false;
   }
 
+  /* Without this, refreshing the gizmo jitters in some cases with edit-mesh 
smooth. See T72948. */
+  if (G.moving & G_TRANSFORM_EDIT) {
+    return false;
+  }
+
   return true;
 }
 
diff --git a/source/blender/windowmanager/intern/wm_operator_utils.c 
b/source/blender/windowmanager/intern/wm_operator_utils.c
index c2af82c007e..856c85d4554 100644
--- a/source/blender/windowmanager/intern/wm_operator_utils.c
+++ b/source/blender/windowmanager/intern/wm_operator_utils.c
@@ -26,6 +26,7 @@
 #include "BLI_string.h"
 
 #include "BKE_context.h"
+#include "BKE_global.h"
 #include "BKE_layer.h"
 
 #include "RNA_access.h"
@@ -176,6 +177,8 @@ static void op_generic_value_exit(wmOperator *op)
     MEM_freeN(cd->objects_xform);
     MEM_freeN(cd);
   }
+
+  G.moving &= ~G_TRANSFORM_EDIT;
 }
 
 static void op_generic_value_restore(wmOperator *op)
@@ -228,6 +231,8 @@ static int op_generic_value_invoke(bContext *C, wmOperator 
*op, const wmEvent *e
   op->customdata = cd;
 
   WM_event_add_modal_handler(C, op);
+  G.moving |= G_TRANSFORM_EDIT;
+
   return OPERATOR_RUNNING_MODAL;
 }

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to