Circle Select Tool improvements #83847

Open
opened 2020-12-16 14:10:12 +01:00 by Julien Kaspar · 11 comments
Member

Issue

The current problem with the Circle Select Tool is that it is very inconvenient to change the brush size. In the modal operator equivalent (Shortcut C) it's just about pressing + and - or using the scrollwheel but this is not an option for the Tool. Generally there are no shortcuts for Tools before they are initiated. If the settings need to be changed then this needs to happen in the Tool Settings in the header or sidebar.
But changing the radius via that slider in the settings is awkward and appears visually glitchy since it's intersecting with the UI itself.

Screenshot 2020-12-16 133043.jpg

Proposals

So how can this be fixed. Ideally the solution should be as straight forward as possible without reshuffling the keymap. But it is very important that this is a general solution that can also be used for other brush-like Tools in the future (like proposed retopology tools that also rely on a brush radius)

1. More integrated modal shortcuts

Once a Tool is initiated (usually by click & dragging) it uses the modal operator. This means that when using the Circle Select Tool and click & dragging, the radius can be changed with the mouse wheel & the + and - keys.
The current issue with this is that the Gizmo drawing is conflicting with the Tool Radius and that any changes to the radius are not updated in the tool settings.
Keeping these 2 more in sync would be one solution or at least a great added feature.

Screenshot 2020-12-16 133624.jpg

It should be updated to the way the annotate eraser tool works but with more accessible shortcuts for radius changes if the mouse wheel is not an option (pen users)

2. Include Brush Tools in more modes

Another solution is to redesign the Circle Select Tool (and any tools, present or future, that work similarly) as a brush like in sculpt mode or the painting modes.
This means that when the Tool is active it does have a set of shortcuts that can change the tool settings before the tool is initiated.

Conflicts

Almost all are already taken like the typical F for brush size changes. It's not clear what shortcut can be used.
Also any shortcut that would be available must then be exclusively used for those brush tools to avoid any conflicts.

Solutions

  1. Find or make an available shortcut for brush tools radius. But this shortcut then needs to be left exclusive of those tools.
  2. Override needed shortcuts when brush tool is used (In this case F for the radius). This does introduce difficulties and extra tool switching in edit mode though.
  3. Reuse the shortcut C that is used for the Circle Select Tool to change the radius once the tool is active. This will be awkward and incompatible with future tools that will work similar though.

Open Topics

  • Can it be achieved to use both solutions to improve brush like tools?
  • Are there possibly other ways of solving the conflicts in proposal 2?
  • For proposal 1, what shortcuts could be better for adjusting the brush size? + & - are on the numpad and the brackets are too far to the right and on for example German keyboard layouts not very accessible.
## Issue The current problem with the Circle Select Tool is that it is very inconvenient to change the brush size. In the modal operator equivalent (Shortcut C) it's just about pressing + and - or using the scrollwheel but this is not an option for the Tool. Generally there are no shortcuts for Tools before they are initiated. If the settings need to be changed then this needs to happen in the Tool Settings in the header or sidebar. But changing the radius via that slider in the settings is awkward and appears visually glitchy since it's intersecting with the UI itself. ![Screenshot 2020-12-16 133043.jpg](https://archive.blender.org/developer/F9512934/Screenshot_2020-12-16_133043.jpg) ## Proposals So how can this be fixed. Ideally the solution should be as straight forward as possible without reshuffling the keymap. But it is very important that this is a general solution that can also be used for other brush-like Tools in the future (like proposed retopology tools that also rely on a brush radius) **1. More integrated modal shortcuts** Once a Tool is initiated (usually by click & dragging) it uses the modal operator. This means that when using the Circle Select Tool and click & dragging, the radius can be changed with the mouse wheel & the + and - keys. The current issue with this is that the Gizmo drawing is conflicting with the Tool Radius and that any changes to the radius are not updated in the tool settings. Keeping these 2 more in sync would be one solution or at least a great added feature. ![Screenshot 2020-12-16 133624.jpg](https://archive.blender.org/developer/F9512955/Screenshot_2020-12-16_133624.jpg) It should be updated to the way the annotate eraser tool works but with more accessible shortcuts for radius changes if the mouse wheel is not an option (pen users) **2. Include Brush Tools in more modes** Another solution is to redesign the Circle Select Tool (and any tools, present or future, that work similarly) as a brush like in sculpt mode or the painting modes. This means that when the Tool is active it does have a set of shortcuts that can change the tool settings before the tool is initiated. **Conflicts** Almost all are already taken like the typical F for brush size changes. It's not clear what shortcut can be used. Also any shortcut that would be available must then be exclusively used for those brush tools to avoid any conflicts. **Solutions** 1. Find or make an available shortcut for brush tools radius. But this shortcut then needs to be left exclusive of those tools. 2. Override needed shortcuts when brush tool is used (In this case F for the radius). This does introduce difficulties and extra tool switching in edit mode though. 3. Reuse the shortcut C that is used for the Circle Select Tool to change the radius once the tool is active. This will be awkward and incompatible with future tools that will work similar though. ## Open Topics - Can it be achieved to use both solutions to improve brush like tools? - Are there possibly other ways of solving the conflicts in proposal 2? - For proposal 1, what shortcuts could be better for adjusting the brush size? + & - are on the numpad and the brackets are too far to the right and on for example German keyboard layouts not very accessible.
Campbell Barton was assigned by Julien Kaspar 2020-12-16 14:10:12 +01:00
Author
Member

Added subscribers: @JulienKaspar, @JulianEisel

Added subscribers: @JulienKaspar, @JulianEisel

#83909 was marked as duplicate of this issue

#83909 was marked as duplicate of this issue

Added subscribers: @Vyach, @rjg

Added subscribers: @Vyach, @rjg
Author
Member

In the case of #83909, I think this is a valid issue. Ideally you want to be able to change the brush size before executing the tool and not while executing it. A workaround is to hold Shift while clicking and resizing but that might accidentally select more elements.

I do believe that both the proposals in this design task are flawed and there is no perfect solution with the way the tool system works. But any of these solutions would be better than the current implementation.

In the case of #83909, I think this is a valid issue. Ideally you want to be able to change the brush size before executing the tool and not while executing it. A workaround is to hold Shift while clicking and resizing but that might accidentally select more elements. I do believe that both the proposals in this design task are flawed and there is no perfect solution with the way the tool system works. But any of these solutions would be better than the current implementation.
Author
Member

Another way of solving this issue globally in Blender is to allow sticky keys to be used with the F, Shift + F & Ctrl + F shortcuts. So when pressing these shortcuts they would execute the typical operators on release (Like fill in edit mode). But when holding the keys and moving the cursor it would instead execute the radial control operators.
I imagine this behavior to be ideal if:

  1. The radial control operations would be contextualy based on what Tool is currently active. If no Tool is active that would take advantage of these radial shortcuts then nothing would happen.
  2. Time based drag thresholds would be implemented instead of just using the current pixel based drag thresholds. #42339
Another way of solving this issue globally in Blender is to allow sticky keys to be used with the F, Shift + F & Ctrl + F shortcuts. So when pressing these shortcuts they would execute the typical operators on release (Like fill in edit mode). But when holding the keys and moving the cursor it would instead execute the radial control operators. I imagine this behavior to be ideal if: 1. The radial control operations would be contextualy based on what Tool is currently active. If no Tool is active that would take advantage of these radial shortcuts then nothing would happen. 2. Time based drag thresholds would be implemented instead of just using the current pixel based drag thresholds. #42339

In my opinion, for circle tool should be one-handed and double handed variants. Because ppl use tablets or touchpads too.

Double handed is simplier. F (dor consistency) and brackets - [ ] (2d editors mostly use em)

For one hand I found only one unoccupied action: MMB-press+wheel scroll as 1 button action. But it is not good, because it mixes with orbit and will not work well with pens.

As far as I use RMB for pan (instead context menu for 1-handed navigation) I can use RMB+scroll.
But there is no ability to set such hotkey now.

So there can be more general change:
Context menu global setting (to W or mouse4 once for all)
One-handed navigation (MMB orbit, wheel zoom, RMB pan)
And RMB + scroll for tune as this one (brush size).

Pen tablets have scrollwheels or strips. So they are twohanded anyway.

I am not sure if Blender can handle LMB+RMB+Drag for brush size without intersection to other actions.

In my opinion, for circle tool should be one-handed and double handed variants. Because ppl use tablets or touchpads too. Double handed is simplier. F (dor consistency) and brackets - [ ] (2d editors mostly use em) For one hand I found only one unoccupied action: MMB-press+wheel scroll as 1 button action. But it is not good, because it mixes with orbit and will not work well with pens. As far as I use RMB for pan (instead context menu for 1-handed navigation) I can use RMB+scroll. But there is no ability to set such hotkey now. So there can be more general change: Context menu global setting (to W or mouse4 once for all) One-handed navigation (MMB orbit, wheel zoom, RMB pan) And RMB + scroll for tune as this one (brush size). Pen tablets have scrollwheels or strips. So they are twohanded anyway. I am not sure if Blender can handle LMB+RMB+Drag for brush size without intersection to other actions.

The idea of moving context menu from RMB to anything else — is ability to make full symmetry between RClickSelect and LClickSelect

The idea of moving context menu from RMB to anything else — is ability to make full symmetry between RClickSelect and LClickSelect

Shortest way for user — is to fix current behaviour: LMB+Scroll will change radius permanenlty (without reset as it is now) and will not ruin selection.
Is is possible? No deselect on nothing at least.

Shortest way for user — is to fix current behaviour: LMB+Scroll will change radius permanenlty (without reset as it is now) and will not ruin selection. Is is possible? No deselect on nothing at least.

Added subscriber: @1D_Inc

Added subscriber: @1D_Inc

Solutions

Indeed, a very tough choise...

> Solutions Indeed, a very tough choise...
Philipp Oeser removed the
Interest
User Interface
label 2023-02-10 09:23:50 +01:00
Member

I am removing the Needs Triage label. This is under the general rule that Design and TODO tasks should not have a status.

If you believe this task is no longer relevant, feel free to close it.

I am removing the `Needs Triage` label. This is under the general rule that Design and TODO tasks should not have a status. If you believe this task is no longer relevant, feel free to close it.
Alaska removed the
Status
Needs Triage
label 2024-04-07 06:00:55 +02:00
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
6 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#83847
No description provided.