[Bf-blender-cvs] [8681504f061] master: Fix inversion of snapping failing in measure tool

Germano Cavalcante noreply at git.blender.org
Sat Apr 3 18:33:06 CEST 2021


Commit: 8681504f06127cf72ad67c4d056d04013d218ad5
Author: Germano Cavalcante
Date:   Sat Apr 3 13:32:42 2021 -0300
Branches: master
https://developer.blender.org/rB8681504f06127cf72ad67c4d056d04013d218ad5

Fix inversion of snapping failing in measure tool

Comparison of event change has to be more specific and compare the x and y
values of the mouse as well.

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

M	source/blender/editors/gizmo_library/gizmo_types/snap3d_gizmo.c

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

diff --git a/source/blender/editors/gizmo_library/gizmo_types/snap3d_gizmo.c b/source/blender/editors/gizmo_library/gizmo_types/snap3d_gizmo.c
index 2561de3aca9..f13b7d832bd 100644
--- a/source/blender/editors/gizmo_library/gizmo_types/snap3d_gizmo.c
+++ b/source/blender/editors/gizmo_library/gizmo_types/snap3d_gizmo.c
@@ -93,19 +93,24 @@ typedef struct SnapGizmo3D {
   bool is_enabled;
 } SnapGizmo3D;
 
+static bool eventstate_cmp(SnapGizmo3D *snap_gizmo, const wmEvent *event)
+{
+  if ((event->x == snap_gizmo->last_eventstate.x) && (event->y == snap_gizmo->last_eventstate.y) &&
+      (event->ctrl == snap_gizmo->last_eventstate.ctrl) &&
+      (event->shift == snap_gizmo->last_eventstate.shift) &&
+      (event->alt == snap_gizmo->last_eventstate.alt) &&
+      (event->oskey == snap_gizmo->last_eventstate.oskey)) {
+    return true;
+  }
+  return false;
+}
+
 /* Checks if the current event is different from the one captured in the last update. */
 static bool eventstate_has_changed(SnapGizmo3D *snap_gizmo, const wmWindowManager *wm)
 {
   if (wm && wm->winactive) {
     const wmEvent *event = wm->winactive->eventstate;
-    if ((event->x != snap_gizmo->last_eventstate.x) ||
-        (event->y != snap_gizmo->last_eventstate.y) ||
-        (event->ctrl != snap_gizmo->last_eventstate.ctrl) ||
-        (event->shift != snap_gizmo->last_eventstate.shift) ||
-        (event->alt != snap_gizmo->last_eventstate.alt) ||
-        (event->oskey != snap_gizmo->last_eventstate.oskey)) {
-      return true;
-    }
+    return eventstate_cmp(snap_gizmo, event) == false;
   }
   return false;
 }
@@ -132,10 +137,7 @@ static bool invert_snap(SnapGizmo3D *snap_gizmo, const wmWindowManager *wm)
   }
 
   const wmEvent *event = wm->winactive->eventstate;
-  if ((event->ctrl == snap_gizmo->last_eventstate.ctrl) &&
-      (event->shift == snap_gizmo->last_eventstate.shift) &&
-      (event->alt == snap_gizmo->last_eventstate.alt) &&
-      (event->oskey == snap_gizmo->last_eventstate.oskey)) {
+  if (eventstate_cmp(snap_gizmo, event)) {
     /* Nothing has changed. */
     return snap_gizmo->invert_snap;
   }



More information about the Bf-blender-cvs mailing list