Rotate manipulator (Trackball) + release confirm not working? #41112

Closed
opened 2014-07-17 22:00:42 +02:00 by krokodil · 20 comments
krokodil commented 2014-07-17 22:00:42 +02:00 (Migrated from localhost:3001)

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.rotate_manip.jpg

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.![rotate_manip.jpg](https://archive.blender.org/developer/F98342/rotate_manip.jpg)
krokodil commented 2014-07-17 22:00:42 +02:00 (Migrated from localhost:3001)
Author

Changed status to: 'Open'

Changed status to: 'Open'
Bastien Montagne changed title from Rotate manipulator to Rotate manipulator (Trackball) + release confirm not working? 2014-07-18 14:47:02 +02:00

Added subscriber: @mont29

Added subscriber: @mont29

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.

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](http://builder.blender.org/download) before reporting a bug.
krokodil commented 2014-07-18 15:59:51 +02:00 (Migrated from localhost:3001)
Author

Added subscriber: @krokodil

Added subscriber: @krokodil
krokodil commented 2014-07-18 15:59:51 +02:00 (Migrated from localhost:3001)
Author

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.rotate_02.jpg

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.![rotate_02.jpg](https://archive.blender.org/developer/F98415/rotate_02.jpg)

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

Well, can’t confirm, let's see whether other dev can?
krokodil commented 2014-07-25 22:35:04 +02:00 (Migrated from localhost:3001)
Author

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.

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.
krokodil commented 2014-07-28 19:00:49 +02:00 (Migrated from localhost:3001)
Author

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.

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.

Added subscriber: @PawelLyczkowski-1

Added subscriber: @PawelLyczkowski-1

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

I'm on official 2.71, Windows 8 64. Release confirms here regardless whether "Confirm on Release" is on or not.
krokodil commented 2014-07-28 20:22:26 +02:00 (Migrated from localhost:3001)
Author

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).

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).

Added subscriber: @AnthonyEdlin

Added subscriber: @AnthonyEdlin

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

2.71 linux32, can't reproduce this behaviour. Either with release confirm on or off.
krokodil commented 2014-09-09 14:03:27 +02:00 (Migrated from localhost:3001)
Author

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.

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.

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 ](https://developer.blender.org/tag/user_interface/). 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);
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); ```
Author

This issue was referenced by 1811ffff5d

This issue was referenced by 1811ffff5d8cad4fea0f34fd7ee86e8726536137

Changed status from 'Open' to: 'Resolved'

Changed status from 'Open' to: 'Resolved'

Closed by commit 1811ffff5d.

Closed by commit 1811ffff5d.
krokodil commented 2014-09-11 13:23:03 +02:00 (Migrated from localhost:3001)
Author

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

Super! It works for me without additional clicking! Thank you very much. Nice... :-)
Sign in to join this conversation.
4 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: blender/blender#41112
No description provided.