[Bf-blender-cvs] [d86894b9e43] master: Fix T61291: Transform gizmo doesn't update w/ 3D cursor

Campbell Barton noreply at git.blender.org
Fri Feb 8 05:12:58 CET 2019


Commit: d86894b9e43a44ed7f9d937325e74859f254ebf2
Author: Campbell Barton
Date:   Fri Feb 8 15:11:33 2019 +1100
Branches: master
https://developer.blender.org/rBd86894b9e43a44ed7f9d937325e74859f254ebf2

Fix T61291: Transform gizmo doesn't update w/ 3D cursor

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

M	source/blender/editors/transform/transform_gizmo_3d.c

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

diff --git a/source/blender/editors/transform/transform_gizmo_3d.c b/source/blender/editors/transform/transform_gizmo_3d.c
index 232a5b6adcc..5f0cb708eae 100644
--- a/source/blender/editors/transform/transform_gizmo_3d.c
+++ b/source/blender/editors/transform/transform_gizmo_3d.c
@@ -1211,23 +1211,6 @@ static void gizmo_xform_message_subscribe(
 		.notify = WM_gizmo_do_msg_notify_tag_refresh,
 	};
 
-	PointerRNA scene_ptr;
-	RNA_id_pointer_create(&scene->id, &scene_ptr);
-
-	{
-		extern PropertyRNA rna_Scene_transform_orientation_slots;
-		extern PropertyRNA rna_Scene_cursor_location;
-		const PropertyRNA *props[] = {
-			&rna_Scene_transform_orientation_slots,
-			(scene->toolsettings->transform_pivot_point == V3D_AROUND_CURSOR) ? &rna_Scene_cursor_location : NULL,
-		};
-		for (int i = 0; i < ARRAY_SIZE(props); i++) {
-			if (props[i]) {
-				WM_msg_subscribe_rna(mbus, &scene_ptr, props[i], &msg_sub_value_gz_tag_refresh, __func__);
-			}
-		}
-	}
-
 	int orient_flag = 0;
 	if (type_fn == TRANSFORM_GGT_gizmo) {
 		GizmoGroup *ggd = gzgroup->customdata;
@@ -1240,10 +1223,28 @@ static void gizmo_xform_message_subscribe(
 	else if (type_fn == VIEW3D_GGT_xform_shear) {
 		orient_flag = SCE_GIZMO_SHOW_ROTATE;
 	}
-
 	TransformOrientationSlot *orient_slot = BKE_scene_orientation_slot_get(scene, orient_flag);
 	PointerRNA orient_ref_ptr;
 	RNA_pointer_create(&scene->id, &RNA_TransformOrientationSlot, orient_slot, &orient_ref_ptr);
+
+	PointerRNA scene_ptr;
+	RNA_id_pointer_create(&scene->id, &scene_ptr);
+	{
+		const ToolSettings *ts = scene->toolsettings;
+		extern PropertyRNA rna_Scene_transform_orientation_slots;
+		extern PropertyRNA rna_Scene_cursor_location;
+		const PropertyRNA *props[] = {
+			&rna_Scene_transform_orientation_slots,
+			((ts->transform_pivot_point == V3D_AROUND_CURSOR) || (orient_slot->type == V3D_MANIP_CURSOR)) ?
+			&rna_Scene_cursor_location : NULL,
+		};
+		for (int i = 0; i < ARRAY_SIZE(props); i++) {
+			if (props[i]) {
+				WM_msg_subscribe_rna(mbus, &scene_ptr, props[i], &msg_sub_value_gz_tag_refresh, __func__);
+			}
+		}
+	}
+
 	{
 		extern PropertyRNA rna_TransformOrientationSlot_type;
 		extern PropertyRNA rna_TransformOrientationSlot_use;



More information about the Bf-blender-cvs mailing list