Page MenuHome

Select Circle doesn't apply changes to radius while running back to active tool
Confirmed, LowPublicTO DO

Description

System Information
Operating system: Windows-7-6.1.7601-SP1 64 Bits
Graphics card: GeForce GTX 660 Ti/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 442.19

Blender Version
Broken: version: 2.83 (sub 5), branch: master, commit date: 2020-03-01 21:35, hash: rBeaf0528749c8
Worked: (optional)

Short description of error
If i change radius with LMB+MScroll, it resets to initial after LMB release

If it is by design, I can`t find hotkeys to change circle radius permanently.
I am trying to replace C-selection with this tool in my pipeline because it allow to rotate around object.
For me mass selection looks like this: take big brush, select big mass, change brush to smaller one, correct selection, zoom in and manually select/deselect certain faces/points. So I don`t see the point to have temporary radius for 1 stroke.

I asked few skillfull guys. They still use C-selection, because it keep it`s radius.

Event Timeline

Philipp Oeser (lichtwerk) changed the task status from Needs Triage to Confirmed.Tue, Mar 3, 1:26 PM

Can confirm.
Changing the radius with LMB down will set the radius (but apparently for the "old-style" operator C -- not for the tool).
Invoking Circle Select again will have that radius indeed, but this is not propagated to the tool properly or is mixed up somehow.... will check code here...

So after some digging, I am still unsure why this doesnt ripple through to the tool properties:

  • in WM_gesture_circle_modal, this is done for the operator: RNA_int_set(op->ptr, "radius", rect->xmax)
  • what we are seeing in the Interface for the Circle Select tool is props = tool.operator_properties("view3d.select_circle"), layout.prop(props, "radius")

Maybe UI / tool experts know more?
CC @Julian Eisel (Severin)
CC @Campbell Barton (campbellbarton)

Campbell Barton (campbellbarton) triaged this task as Low priority.EditedWed, Mar 4, 2:16 AM
Campbell Barton (campbellbarton) changed the subtype of this task from "Report" to "To Do".

Currently the design assumes either the operator is used directly (C-Key), or the tool is used (and the user doesn't mouse-wheel while LMB dragging).

To solve this properly with the current design, we need a way for the circle selection gesture to write values back to the tool settings.

A simple workaround could be to store the selection radius as a tool-setting instead of separating the settings, however that has the down size that two operators which both happen to use the circle gesture will also share a radius.

A short term workaround could be to disable resizing entirely when used as a tool P1279.

Campbell Barton (campbellbarton) renamed this task from Select Circle resets radius, if I change it with scroll. Bug or bad design? to Select Circle doesn't apply changes to radius while running back to active tool.Wed, Mar 4, 2:26 AM

@Campbell Barton (campbellbarton) having them always be the same doesn't seem like a downside to me. I think that's what users would expect in fact.

For old tool there is one bad thing: you can`t rotate camera and select
But some good thing: simpliest hotkeys and gestures. MMB-Scroll for size, MMB for exclude, C to call and RMB to cancel.
If i use tool, all this buttons are occupied for viewport rotation, context menu etc..

So for quick selection I would prefer old way (C, select, RMB). for complex selection, I will use new tool, because I need to rotate character or complex shape, and do not want to use C+RMB each time i want to turn camera.

@Campbell Barton (campbellbarton) having them always be the same doesn't seem like a downside to me. I think that's what users would expect in fact.

It would be shared between editors (UV, f-curve... 3D view etc). Which could be annoying.

We could, however this can backfire in the future, and doesn't solve the general case - giving us manual work every time we run into these situations.

Also, the circle is intended to be a generic gesture (similar to box-gesture or line-gesture), we happen to use it for selection at the moment, but hard coding to a certain size will back-fire if you want to use it elsewhere.

This exposes a limit in how tool-settings or last-operator-settings don't always work well together.

I think it's worth looking into having an automatic way to write back operator properties into the tool-settings, so we don't have to do things like manually adding arrays of radius-values-per-space-type every time we run into this kind of problem.


Edit, this patch resolves the issue by writing properties back to the tool when activated by the tool keymap however I'd rather not commit this just now without more testing P1285.