Page MenuHome

Rotate manipulator (Trackball) + release confirm not working?
Closed, ResolvedPublic

Description

Blender has option " Transform release confirms" (Blender User Preferences/Editing)
But in rotate mode this one does not work correctly = if you select center circle (green-red cross arrow), you can rotate object, but after release mouse button the rotation is continuing. You must click again.

If you are working in one axis mode ( X or Y or Z) it works OK. The rotation stops after release mouse button.

Event Timeline

krokodil (krokodil) claimed this task.
krokodil (krokodil) raised the priority of this task from to 90.
krokodil (krokodil) updated the task description. (Show Details)
krokodil (krokodil) edited a custom field.
Bastien Montagne (mont29) renamed this task from Rotate manipulator to Rotate manipulator (Trackball) + release confirm not working?.Jul 18 2014, 2:47 PM
Bastien Montagne (mont29) lowered the priority of this task from 90 to 30.

Cannot confirm that here (linux64, latest master). You do not specify the Blender version you are using, please always try with the latest build from our buildbot before reporting a bug.

windows 7 64 bit
blender 2.69, 2.70a, 2.71 + last version blender-2.71-80d3eb6-win64

The result is the same.
The rotate release confirms does not work via center circle ( green- red cross arrow) only. :-) It needs the second click.

Steps:
1- activate the rotate manipulator
2 - select the center circle
3- rotate with the green-red cross handle
4- release mouse button - nothing happens, the rotation is continuing
5 - second click stops the rotation

The seperate axis mode ( X or Y or Z) works ok.

Bastien Montagne (mont29) raised the priority of this task from 30 to Normal.Jul 25 2014, 9:12 AM

Well, can’t confirm, let's see whether other dev can?

I think it is not a bug, It is problem of core blender rotation code. The coders made this one by this way. The rotation axis are ok, free rotation via small center circle is an absudity ( problems with selection) , rotation widget is not for rotation only, the transformation is possible also inside rotation widget. Why? We have transformation widget with transformation functionality also.
It is mistake of coding. Coders must see maya rotation manipulator. Excuse me, I am not in love with Maya, but some things in Blender are up side down.

Maya, Max, Softimage, Motion builder, Modo... ( industry standart) are using another manipulator functionality for rotation.
Maya manipulator is like virtual sphere.
Blender needs alternative (addon) to its own rotate manipulator. This one is out of industry standart.

I'm on official 2.71, Windows 8 64. Release confirms here regardless whether "Confirm on Release" is on or not.

I hope that someone will develop new addon for rotation manipulator. I do not want to destroy old blender rotate manipulator, I want an alternative only (like Maya).

2.71 linux32, can't reproduce this behaviour. Either with release confirm on or off.

Point of view of character animators:

We animate small project ( armarures, rig, bones) with Blender and we are frustrating with blender rotate manipulator. Excuse me, Maya, Max...Modo rotate manipulators are like virtual sphere. Like notebook trackball. Each movement is very intuitive and precise.

Maya - If you click and drag the lines ( red, green, blue ) you can rotate only direction X or Y or Z, but if you click an drag BETWEEN the lines, you can rotate interactively like with notebook trackball or virtual sphere. Please, the coders must open Maya software and try it.

Blender -- if you click BETWEEN rotate lines ( red, green, blue ) you can move object only, not rotate. Ok, sometimes it is very helpful.
Blender has ability " free rotate mode" ( double clicking "R" shortcut or small circle in the middle of rotate manipulator), but it is not the same as maya. The circle in the middle is very small, there is problem with the selection and after rotation you must clik again. The "release confirms" does not work. It is very slow and frustrating functionality.

Blender has very very powerfull features, we love it, but rotate manipulator is non intuitive, it is an experiment which is out of industry standarts.
Blender needs to adapt to the industry standards not the opposite. We hope, that some well-oriented coder will make addon with industry standart rotate manipulator functionality.

Hi,

I cannot really help you with your wish for a different rotation manipulator here. If you want to pursue that then I believe it would be best to get involved in the UI team, either by petitioning someone currently interested in that or getting involved yourself. You can find more info here.

Back to the original bug report. As I and several others so far have said, we cannot reproduce the problem you are experiencing. In order to fix it we have to be able to reproduce it. It may be your specific configuration that is causing the problem, such as custom keybinds or settings. If you do File->Load Factory Settings does the problem still occur?

It should be pointed out for reference, that the release confirm in the User Preferences->Editing tab shouldn't actually affect the manipulator. This setting, I think, should only change how tweak events operate. Or more technically, it only affects mouse keybinds that do not have the release confirm property at all.

The manipulator's "release confirm" setting is in the keybindings under "3D Manipulator", and by default in the code the "release confirm" property of that keybinding is always set to true.

Well, after playing with it for a couple of hours I was able to reproduce this behaviour but it's pretty complicated to describe.

Here goes.

  1. Open blender and load factory settings.
  2. Switch on the rotation manipulator in the 3d view.
  3. Open user preferences->Input tab->3d View->3d View (Global)->3D Manipulator
  4. Uncheck Confirm on Release
  5. Go back to main blender window and click inside small circle on manipulator to start a trackball rotation. (This step is important for some reason)
  6. Go back to user prefs and 3D Manipulator section.
  7. Now click the X to the right of Confirm on Release (This should now grey out the Confirm on Release section)
  8. Switch to Editing tab of user preferences and turn on "Release confirms".
  9. Go back to 3D view and notice that if you click circle in center of manipulator for trackball it does not "confirm on release" but it does "confirm on release" for axis manipulator rotations.

I've pasted a short patch here that I think fixes the issue. At least it fixed it in my small tests.

diff --git a/source/blender/editors/transform/transform_manipulator.c b/source/blender/editors/transform/transform_manipulator.c
index 2daaa10..5644df8 100644
--- a/source/blender/editors/transform/transform_manipulator.c
+++ b/source/blender/editors/transform/transform_manipulator.c
@@ -1886,11 +1886,16 @@ 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 if it exhists */
 			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_boolean_set(&props_ptr, "release_confirm", RNA_boolean_get(op->ptr, "release_confirm"));
+			}
 			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);

Super! It works for me without additional clicking! Thank you very much. Nice... :-)