Page MenuHome

Fix T62932 3D Cursor tool settings is not shared globally
Needs RevisionPublic

Authored by Sebastian Parborg (zeddb) on Apr 2 2019, 8:18 PM.



Here is my initial take on the issue.

Now the 3d cursor settings are synced with the tool (with the ability to disregard the global tool settings if needed).

I wonder if we should move out the cursor orientation options from ED_view3d now that they are global?

Diff Detail

Event Timeline

William Reynish (billreynish) requested changes to this revision.Apr 4 2019, 6:05 PM

I don't think this is how we should solve it. We should not use active tool settings when that active tool is not activated.

Instead, I thought the plan was to use the scene orientation, ie this:

...when just setting the cursor not as an active tool.

This revision now requires changes to proceed.Apr 4 2019, 6:05 PM

I don't think so. To me it seems clear that people doesn't really think of the 3D cursor tool as something that is separate from the 3D cursor fallback shortcuts. Instead the toolbar is just a way to change the settings of the 3D cursor.
So they click on the tool bar 3D cursor tool, discover the settings, and then change to something else and try to place the 3D cursor. Then they are confused because the settings they had set for the tool doesn't match the shortcut.
That is what T62932 is about.

I don't think we will solve the issue if we per default decouple the 3D cursor tool setting and the shortcut settings. It will just lead to further confusion and bug reports.

The global transform orientation menu doesn't have anything to do with the 3D cursor settings anyways.

The paradigm we have is that the active tool settings apply when a tool is active.

What this does would be the equivalent of the active transform tool settings also being applicable when just using the modal transform operators.

We use the main scene Orientation as a way to define the orientation of any transform now.

I would argue that the 3D cursor is an exception though. There is nothing that is visually telling the user that the tool is any different from the other 3D cursors. And additionally each mode had its own 3D cursor settings.

I feel the proposed way is logical and simple.
You click the 3D cursor button in the tool bar, you get the 3D cursor settings.
They are saved and are per default shared in all modes and 3D cursor placement operations.

This is already the case with other tools in the tool bar like brushes (even if they are for different modes and brush operations). So I fail to see why we would try to do anything different here.

The 3D cursor is (per default) the 3D cursor. Nothing more, nothing less.

It is utter madness to try to have different behaviors of the exact same tool just because you have not selected the icon in the tool bar (unless the user specifically set this up themselves).

@William Reynish (billreynish), I'm not sure a paradigm of a tool having two sets of settings really makes sense. To me this seems like a good way to make the top bar more useful and reduce confusion.

While I agree that using the scene orientation would be a better default, I definitely agree with @Sebastian Parborg (zeddb) that the behavior with this patch makes more sense than that for these reasons:

  • The active tool settings is the only location to adjust the 3D cursor placement settings, so it makes sense that it would be global.
  • There is no transform orientation for "whichever normal is clicked on," so the transform orientation settings aren't analogous to the 3D cursor placement orientation settings anyway.
  • A new user doesn't necessarily know about the differences between active and normal tools. The "place cursor" mouse action feels like a shortcut for the active toolbar tool.

I've taught a few new Blender users with 2.8, and the most confusing thing is consistently the redundancy and differences of the new toolbar active tools and the shortcut tools. In my opinion this distinction should start disappear, maybe more in 2.81. As far as I know the official plan is eventually to do that too? But anything that can be done to help with this confusion is positive in my opinion, and even if grabbing settings from the toolbar is a bit hacky, it makes so much more sense from a user's perspective.

I remember talking about this at the homestretch workshop. An alternative solution would be to add a cursor orientation menu in the 3D cursor panel in the sidebar, so it's always available there even when the tool is not in use.

Then the tool and the operator could both use the same viewport setting I think. Could even be a scene setting next to the 3D cursor location and rotation, since it's closely linked to that anyway.

I don't know if we all agreed on that though.

Sounds resonable. Let me know when we have a consensus.

@Brecht Van Lommel (brecht) Well if the setting is only in the sidebar I think it becomes too hidden when using the active tool. But I guess it could be in both places?

In general, I expect this issue will continue to appear. It's just easier to add options to active tools because we can then show them contextually when that tool is active, vs direct operators where we often have no good place to add options-