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.
No Label
Interest
Alembic
Interest
Animation & Rigging
Interest
Asset Browser
Interest
Asset Browser Project Overview
Interest
Audio
Interest
Automated Testing
Interest
Blender Asset Bundle
Interest
BlendFile
Interest
Collada
Interest
Compatibility
Interest
Compositing
Interest
Core
Interest
Cycles
Interest
Dependency Graph
Interest
Development Management
Interest
EEVEE
Interest
EEVEE & Viewport
Interest
Freestyle
Interest
Geometry Nodes
Interest
Grease Pencil
Interest
ID Management
Interest
Images & Movies
Interest
Import Export
Interest
Line Art
Interest
Masking
Interest
Metal
Interest
Modeling
Interest
Modifiers
Interest
Motion Tracking
Interest
Nodes & Physics
Interest
OpenGL
Interest
Overlay
Interest
Overrides
Interest
Performance
Interest
Physics
Interest
Pipeline, Assets & IO
Interest
Platforms, Builds & Tests
Interest
Python API
Interest
Render & Cycles
Interest
Render Pipeline
Interest
Sculpt, Paint & Texture
Interest
Text Editor
Interest
Translations
Interest
Triaging
Interest
Undo
Interest
USD
Interest
User Interface
Interest
UV Editing
Interest
VFX & Video
Interest
Video Sequencer
Interest
Virtual Reality
Interest
Vulkan
Interest
Wayland
Interest
Workbench
Interest: X11
Legacy
Blender 2.8 Project
Legacy
Milestone 1: Basic, Local Asset Browser
Legacy
OpenGL Error
Meta
Good First Issue
Meta
Papercut
Meta
Retrospective
Meta
Security
Module
Animation & Rigging
Module
Core
Module
Development Management
Module
EEVEE & Viewport
Module
Grease Pencil
Module
Modeling
Module
Nodes & Physics
Module
Pipeline, Assets & IO
Module
Platforms, Builds & Tests
Module
Python API
Module
Render & Cycles
Module
Sculpt, Paint & Texture
Module
Triaging
Module
User Interface
Module
VFX & Video
Platform
FreeBSD
Platform
Linux
Platform
macOS
Platform
Windows
Priority
High
Priority
Low
Priority
Normal
Priority
Unbreak Now!
Status
Archived
Status
Confirmed
Status
Duplicate
Status
Needs Info from Developers
Status
Needs Information from User
Status
Needs Triage
Status
Resolved
Type
Bug
Type
Design
Type
Known Issue
Type
Patch
Type
Report
Type
To Do
No Milestone
No project
No Assignees
4 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: blender/blender#41112
No description provided.