Page MenuHome

UI: View3D Cursor Changes

Authored by Harley Acheson (harley) on Thu, Dec 26, 5:17 AM.



This small patch changes many cursors in the View3D editor. My hope is that this patch can be tested and then serve as a starting point for further changes and tweaks.

The major problem this patch addresses is that Edit Mode defaults to using a cross cursor, and in almost all cases this is not the best cursor. In fact, our major goal with mouse cursors is to set them per-tool, not per-mode. In most cases while editing mesh you can select more than a single vertex, but also edges, faces, and sometimes much more. A cursor designed for selecting a single vertex is less than ideal and actually covers up what you trying to select in many cases. This is the current consensus of the core developers and UI team.

Currently the View3D editor checks to see if it can set the cursor based on the current tool. If it cannot it defaults to WM_CURSOR_EDIT if in Edit Mode, or to WM_CURSOR_DEFAULT if not. This patch makes it so the default (if not set by tool) is WM_CURSOR_DEFAULT (the OS-supplied pointing cursor).

With this change there are a few tools that should not be default pointer. So this patch makes the "Measure" tool use the cross cursor, as it does now. Similarly "Lasso Select" is also set to use cross cursor. However, "Circle Select" tool is set to use NONE for cursor. This is because that tool draws a wide circle that represents the area of selection. While selecting with this tool the center has no importance at all and it is only the circle outer edge that matters.

This patch also makes it so the Navigate Gizmo (the widget with axes balls at the top right) will use the default pointer when hovering over it. The Cross cursor covers up the Axis labels too much.

Diff Detail

rB Blender

Event Timeline

Harley Acheson (harley) edited the summary of this revision. (Show Details)Thu, Dec 26, 5:21 AM

It’s not that the crosshair covers anything up (all cursors cover something up to varying degrees). It’s more that we use the cursor to communicate which tool is active, and the concept of mode-based cursors conflict with tool cursors. To be able to add more and better tool cursors, we first must get rid of the mode cursors.

This revision is now accepted and ready to land.Thu, Dec 26, 11:16 AM

Made a couple changes after talking to William. Trying 'DOT' cursor for circle select, rather than none. And default pointer for Lasso select, rather than cross.

Trying 'DOT' cursor for circle select

Just saying, it's not uncommon to have the default pointer cursor on Circle selection tools too...

I myself I'd prefer the pointer cursor, instead of a DOT which can be very annoying.
But well, that's up to you guys. 👍

@ThinkingPolygons (ThinkingPolygons) - I myself I'd prefer the pointer cursor, instead of a DOT which can be very annoying.


I liked having NO cursor in there, but the problem is that there is (sometimes) quite a lag between where your mouse is and where that circle is drawn, making feel a bit laggy. The "dot" cursor was something to try, but I find it too small to be useful. So we'll probably have to just go with pointer for that too. One cursor to rule them all. LOL.

But well, that's up to you guys. 👍

In issues like this your opinion is far more useful than mine.

Just changing circle select to use default pointer instead of DOT. Dot was just too small.

Yo Harley boss, any ETA on this? Or it's already in master? 🤔

Yo Harley boss, any ETA on this? Or it's already in master? 🤔

No, not committed yet. I just got back home from a break. Will talk to William about this one fairly soon.

@Harley Acheson (harley) I already accepted the patch, so what else can I do? I have continually nudged other developers to check your patches also. I don't know what else to to at this point.