[Bf-blender-cvs] [7eaed14fae8] master: Fix T72948: Smooth active tool gizmo vibrates

Campbell Barton noreply at git.blender.org
Fri Jan 10 03:26:35 CET 2020


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;
 }



More information about the Bf-blender-cvs mailing list