[Bf-blender-cvs] [b0ab4b815a8] master: PyAPI: Add error when registering a 3D gizmo into a 2D gizmo group

Campbell Barton noreply at git.blender.org
Fri Jan 29 01:40:25 CET 2021


Commit: b0ab4b815a82cb221b7f1b80446e7c3e89b1fffa
Author: Campbell Barton
Date:   Fri Jan 29 11:12:57 2021 +1100
Branches: master
https://developer.blender.org/rBb0ab4b815a82cb221b7f1b80446e7c3e89b1fffa

PyAPI: Add error when registering a 3D gizmo into a 2D gizmo group

Address issue raised in T85145.

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

M	source/blender/makesrna/intern/rna_wm_gizmo.c

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

diff --git a/source/blender/makesrna/intern/rna_wm_gizmo.c b/source/blender/makesrna/intern/rna_wm_gizmo.c
index 5d4d661b16f..50270df5f36 100644
--- a/source/blender/makesrna/intern/rna_wm_gizmo.c
+++ b/source/blender/makesrna/intern/rna_wm_gizmo.c
@@ -600,6 +600,18 @@ static wmGizmo *rna_GizmoGroup_gizmo_new(wmGizmoGroup *gzgroup,
     BKE_reportf(reports, RPT_ERROR, "GizmoType '%s' not known", idname);
     return NULL;
   }
+  if ((gzgroup->type->flag & WM_GIZMOGROUPTYPE_3D) == 0) {
+    /* Allow for neither callbacks to be set, while this doesn't seem like a valid use case,
+     * there may be rare situations where a developer wants a gizmo to be draw-only. */
+    if ((gzt->test_select == NULL) && (gzt->draw_select != NULL)) {
+      BKE_reportf(reports,
+                  RPT_ERROR,
+                  "GizmoType '%s' is for a 3D gizmo-group. "
+                  "The 'draw_select' callback is set where only 'test_select' will be used.",
+                  idname);
+      return NULL;
+    }
+  }
   wmGizmo *gz = WM_gizmo_new_ptr(gzt, gzgroup, NULL);
   return gz;
 }



More information about the Bf-blender-cvs mailing list