Commit: 1811ffff5d8cad4fea0f34fd7ee86e8726536137
Author: Anthony Edlin
Date:   Wed Sep 10 11:59:21 2014 +0200
Branches: master
https://developer.blender.org/rB1811ffff5d8cad4fea0f34fd7ee86e8726536137

Fix T41112: Rotate manipulator (Trackball) + release confirm not working?

Usual same issue (unset property != set property to default value).

Review and minor edits by mont29 (Bastien Montagne).

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

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

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

diff --git a/source/blender/editors/transform/transform_manipulator.c 
b/source/blender/editors/transform/transform_manipulator.c
index 2daaa10..2161e52 100644
--- a/source/blender/editors/transform/transform_manipulator.c
+++ b/source/blender/editors/transform/transform_manipulator.c
@@ -1886,11 +1886,14 @@ int BIF_do_manipulator(bContext *C, const struct 
wmEvent *event, wmOperator *op)
                else if (drawflags == MAN_ROT_T) { /* trackball need special 
case, init is different */
                        /* Do not pass op->ptr!!! trackball has no "constraint" 
properties!
                         * See [#34621], it's a miracle it did not cause more 
problems!!! */
-                       /* However, we need to copy the "release_confirm" 
property... */
+                       /* However, we need to copy the "release_confirm" 
property, but only if defined, see T41112. */
                        PointerRNA props_ptr;
+                       PropertyRNA *prop;
                        wmOperatorType *ot = 
WM_operatortype_find("TRANSFORM_OT_trackball", true);
                        WM_operator_properties_create_ptr(&props_ptr, ot);
-                       RNA_boolean_set(&props_ptr, "release_confirm", 
RNA_boolean_get(op->ptr, "release_confirm"));
+                       if ((prop = RNA_struct_find_property(op->ptr, 
"release_confirm")) && RNA_property_is_set(op->ptr, prop)) {
+                               RNA_property_boolean_set(&props_ptr, prop, 
RNA_property_boolean_get(op->ptr, prop));
+                       }
                        WM_operator_name_call(C, ot->idname, 
WM_OP_INVOKE_DEFAULT, &props_ptr);
                        //wm_operator_invoke(C, 
WM_operatortype_find(ot->idname, 0), event, NULL, NULL, false);
                        WM_operator_properties_free(&props_ptr);

_______________________________________________
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to