[Bf-blender-cvs] [735653cda86] master: Fix T52354: Origin to Geometry uses Bounds w/ Median Center is set

Campbell Barton noreply at git.blender.org
Wed Jan 16 08:33:06 CET 2019


Commit: 735653cda86c88c4768bf0456afd8112044704fd
Author: Campbell Barton
Date:   Wed Jan 16 18:32:09 2019 +1100
Branches: master
https://developer.blender.org/rB735653cda86c88c4768bf0456afd8112044704fd

Fix T52354: Origin to Geometry uses Bounds w/ Median Center is set

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

M	source/blender/editors/object/object_transform.c

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

diff --git a/source/blender/editors/object/object_transform.c b/source/blender/editors/object/object_transform.c
index 373b7a4a0aa..57a04cbd0f3 100644
--- a/source/blender/editors/object/object_transform.c
+++ b/source/blender/editors/object/object_transform.c
@@ -813,7 +813,6 @@ static int object_origin_set_exec(bContext *C, wmOperator *op)
 	Object *tob;
 	float cursor[3], cent[3], cent_neg[3], centn[3];
 	int centermode = RNA_enum_get(op->ptr, "type");
-	int around = RNA_enum_get(op->ptr, "center"); /* initialized from v3d->around */
 
 	ListBase ctx_data_list;
 	CollectionPointerLink *ctx_ob;
@@ -826,12 +825,22 @@ static int object_origin_set_exec(bContext *C, wmOperator *op)
 		BKE_report(op->reports, RPT_ERROR, "Operation cannot be performed in edit mode");
 		return OPERATOR_CANCELLED;
 	}
-	else {
-		/* get the view settings if 'around' isn't set and the view is available */
-		View3D *v3d = CTX_wm_view3d(C);
-		copy_v3_v3(cursor, scene->cursor.location);
-		if (v3d && !RNA_struct_property_is_set(op->ptr, "center"))
-			around = scene->toolsettings->transform_pivot_point;
+
+	int around;
+	{
+		PropertyRNA *prop_center = RNA_struct_find_property(op->ptr, "center");
+		if (RNA_property_is_set(op->ptr, prop_center)) {
+			around = RNA_property_enum_get(op->ptr, prop_center);
+		}
+		else {
+			if (scene->toolsettings->transform_pivot_point == V3D_AROUND_CENTER_BOUNDS) {
+				around = V3D_AROUND_CENTER_BOUNDS;
+			}
+			else {
+				around = V3D_AROUND_CENTER_MEDIAN;
+			}
+			RNA_property_enum_set(op->ptr, prop_center, around);
+		}
 	}
 
 	zero_v3(cent);



More information about the Bf-blender-cvs mailing list