Page MenuHome

Mouse cursor disappears on Grease Pencil stroke
Open, Confirmed, MediumPublic

Description

System Information
Operating system: Ubuntu 18.10 / Kubuntu 18.10 / KDE Neon 5.15.2 / Windows 10
Graphics card: GTX 1060 / GTX970 / Intel

Blender Version
Broken: 2.80, 6fd11a21f5c5, blender 2.8, 2019-03-10
Worked: 2.80 alpha 2

Short description of error
The mouse cursor and brush outline disappear on every Grease Pencil stroke.

Exact steps for others to reproduce the error

  1. File->New->2D Animation
  2. With 'Draw Pencil' tool (any settings) draw a stroke using mouse or tablet.

Result: mouse cursor and brush outline disappear. After release, the brush outline reappears but the cursor does not. As soon as the mouse is outside the view (3D Viewport), the cursor reappears as well.

This is especially problematic in conjunction with a tablet and very low pressure: since the stroke is then very small / light, I lose track of the brush position.

Details

Type
Bug

Event Timeline

William Reynish (billreynish) triaged this task as Confirmed, Medium priority.

I can confirm this. I believe it was done intentionally by the Grease Pencil developers, because the cursor is in the way when using a stylus. But when *not* using a stylus, you have to be able to see where your cursor is.

The disappearing cursor is most problematic when i do use a stylus, because the cursor then disappears when the pen-pressure is low. It turns too small / transparent to see.

I have done a small change to back the cursor when complete a stroke.

@William Reynish (billreynish) @Matias Mendiola (mendio) @Daniel Lara (Pepeland) (pepeland) What do you think to add an option to keep cursor visible while drawing? Not sure where, but we can think on it.

Yes I think this should be an option. When you draw directly on the screen using a Cintique-style drawing display, you don’t want to see the cursor, but if you use a classic Intuos-style stylus, or if you simply use the mouse, you do. This basically applies to all tools really, so it should be a general setting.

I think it could to in Preferences > Input > Stylus

Clarification: I'm talking of the mouse cursor (arrow) not the small circle

Yes, indeed. In Sculpt and Paint modes, I think we should actually just hide the mouse cursor arrow by default always, and just show the circle.

But the circle becomes infinitely small when the (classic tablet without display) stylus pressure is low. Would it be an idea to have an optional (small) crosshair in paint / sculpt modes? That would seem ideal for tablet use.

With a tablet, you have the actual physical pen telling you where the stroke will appear when you touch the display, so you wouldn’t want crosshairs or mouse cursors or anything like that in the way.

Unless you mean you are using an old-school stylus with no display?

Exactly. When drawing on a tablet without a display (In my case a Huion H1060P which I refuse to call 'oldskool' ;) an -optional- crosshair would be cool.

In Sculpt- and Texture Paint mode, the 'brush circle' remains the maximal brush size regardless of the pen pressure. That works great as well for Grease Pencil yet it would be more consistent with the rest of Blender.

@Antonio Vazquez (antoniov)

Here's what I think we should do:

  • In all paint modes, replace the arrow cursor with a cross-hair instead.
  • Have a consistent toggle to hide or show it, which works the same in all paint modes
    • If you use a tablet with a display (Cintique, iPad Pro etc) you *never* want to see the crosshair
    • If you use an older type of stylus with no display, you *always* want to see it.

This option we could put in Preferences under Input > Tablet I think.

I could do that changes in grease pencil area, but not sure in other areas.

We also need define the user preferences value. where?

Internally, we could reuse in UserDef struct the field char _pad10 to define the flag, so the change here is easy. As by default the cursor is ON, we could define this property as "Hide mouse cursor in Paint modes" or something like that.

Also, we need define the section of the user prefs screen to put this new parameter.

Agree with your proposal @William Reynish (billreynish) , maybe the cursor preferences should be on Interface -> Display or in a new panel 'Cursor'

Here a test of the new parameter:

@William Reynish (billreynish) I have a doubt.. when you say "never" means only while you are drawing or all the time. How will work when you are over a menu or button?

I think this is only when using brushes, maybe 'Show Cursor In Brush Tip' would be clearer

I'm running some test and this is what I get:

When you enter in Draw mode, the cursor is arrow (default) and the small circle.

As soon you start to drawing, or erase, the small ring is hidden and depending of the user preferences a cross cursor is showed or not. If you have the show mouse disable, all is hidden.

When you finish your stroke, the cursor backs to default (arrow) and the small ring.

Note: The small ring depends of brush options (you can disable it if you want).

I don't see a way to hide the arrow all the time, and not sure we must do that. If we hide all the time the cursor (while is not drawing) you "feel" the system is not working because nothing moves (maybe the brush has the ring disabled). Anyway, we need the help of Campbell to hide all the time the cursor because he knows how works that area.

@Antonio Vazquez (antoniov) I don't see why you should ever see the standard cursor arrow. Look at other painting apps, they don't show this when using a paint brush.

I also don't understand why you make a distinction between before and during drawing a stroke. IMO that's not the correct way to go. Either you always want to see the cross-hair, or you never want to see it, based on the input device.

Here's what I propose:

The idea here is that this is what you see both WHILE painting and while you just have a painting tool active. I think we should get rid of the 'hide when drawing'-logic.

If you draw with a mouse or external stylus, it's not what you want, and if you draw directly on a Cintique-style device, it's also not what you want.

This would be a good solution I think: the brush can now still be tracked even if the circle is infinitely small. Optionally, so it won't get in the way on a pen display.

As this is for all paint modes, we need that @Campbell Barton (campbellbarton) fix it because is related to tool bar too. After that,, I can do some adaptation for the grease pencil special cursor handling.

Any chance this gets resolved in 2.80?

@Antonio Vazquez (antoniov) Will you handle this? Or do you need assistance, or questions answered to proceed?

@William Reynish (billreynish) I can change things in grease pencil paint, but not in other areas.

  1. We cannot change UI now, so we cannot add new parameters to hide/show cursor.
  2. Hide all the time the cursor is not logic... maybe you need select something outside drawing area.
  3. Use always cross cursor is not logic for the same reason above.... for select a menu, buttons, etc the logic cursor is default arrow,

I can propose a small change that will help a lot for users without tablet. The idea is to change the cursor to cross while you are drawing.

I have done an small test in the following video (look at the small cross cursor).

Not sure this is the ideal solution for tablet/Cintiq users... when they are drawing the pen is the cursor, so display any cursor is annoying.

I could add an option in any place in the UI to decide if show or not the cursor, but this would change the UI and this is forbiden now.

@Matias Mendiola (mendio) @Daniel Lara (Pepeland) (pepeland) I would like to hear your opinions before doing any change.

The Crosshair cursor you are using in the sample video seems to me way too intrusive for drawing.
What other cursor alternatives we have? Maybe we should hide only the Arrow cursor while drawing but keeping the actual small brush circle icon.

and of course the best solution would be to change the actual Arrow cursor to a tiny crosshair cursor while on the viewport.

Here a test with the small dot.

  1. We cannot change UI now, so we cannot add new parameters to hide/show cursor.

I think this would be ok to change. The current situation is highly problematic if you use any indirect input device, such as a tablet or mouse.

  1. Hide all the time the cursor is not logic... maybe you need select something outside drawing area.

Of course this should only apply to the viewport. If you use a direct input device, such as an iPad Pro, Surface, or Wacom Cintiq, then you really don't want a cursor at all - your pen is the cursor, and any arrow cursor will be in the way, always.

That's why, on devices like the iPad Pro, there is never a cursor. The pen/Pencil is the cursor. There is also no cursor when you draw on a piece of paper. A cursor is only for indirect input devices.

  1. Use always cross cursor is not logic for the same reason above.... for select a menu, buttons, etc the logic cursor is default arrow,

The crosshair obviously is only for drawing, not interacting with the UI elements when using indirect input devices-

To clarify, these are the changes I think we should make:

  1. Change cursor in paint modes to NOT arrow cursor (crosshair, dot, whatever)
  2. Add global toggle to disable cursor, for direct input devices
  3. Remove the feature in GP that hides the cursor while drawing

The hide-while-drawing feature doesn't make any sense as far as I can see. Either you want the cursor enabled or disabled.

@Antonio Vazquez (antoniov): changing the cursor should be easy. Check the annotate tool as an example.

@William Reynish (billreynish) I agree about Cintiq/Ipad type input devices... IMHO this is a general problem of Blender. If you have a device of this type you don't want a cursor at all (UI, Drawing, Sculpt, etc)..so this need a general change of Blender with a general UserPrefs option.

For user using Mouse or Wacom old tablet, you need a cursor feedback... in this case we could use the solution of keep only the small dot (cross is too intrusive) while you are drawing and the arrow when not (as the last video).

Hide the cursor in all Blender is something outside my knowledge and maybe affects the main cursor handling areas, so if we want that we need Campbell help.

PS: what happens if you have dual monitors (one LCD and one Cintiq)?

To clarify, these are the changes I think we should make:

  1. Change cursor in paint modes to NOT arrow cursor (crosshair, dot, whatever)
  2. Add global toggle to disable cursor, for direct input devices
  3. Remove the feature in GP that hides the cursor while drawing

The hide-while-drawing feature doesn't make any sense as far as I can see. Either you want the cursor enabled or disabled.
@Antonio Vazquez (antoniov): changing the cursor should be easy. Check the annotate tool as an example.

Totally Agree on all this points, and as @Antonio Vazquez (antoniov) said, the toggle to hide/show icons affects Blender in general, it's not only Gpencil related. we should open a new task for this @William Reynish (billreynish) ?

@William Reynish (billreynish) I agree about Cintiq/Ipad type input devices... IMHO this is a general problem of Blender. If you have a device of this type you don't want a cursor at all (UI, Drawing, Sculpt, etc)..so this need a general change of Blender with a general UserPrefs option.

Yes, agreed. It should be a general preference, because it is device-specific.

For user using Mouse or Wacom old tablet, you need a cursor feedback... in this case we could use the solution of keep only the small dot (cross is too intrusive) while you are drawing and the arrow when not (as the last video).

No, not only *while* drawing - we should never see the arrow cursor in paint modes. All 2d paint apps show a dot, crosshair, or something like this, both *while* drawing and just in general when you are over the canvas or viewport.

For now, I think we should just add a crosshair cursor and add it to all the paint modes. That should be easy.

A global preference to hide the cursor is a separate thing.

It should be possible to adjust the dot or crosshair for tablet or mouse so the artist can customize its size to their preference.

@Eitan (EitanSomething) We already have the global Large Cursors toggle, for now.

Antonio Vazquez (antoniov) closed this task as Resolved.Jun 7 2019, 1:09 PM

I think this is fixed with a412f49e7580

Thank you very much!

It works great with my Huion tablet :).

Fred Fonkle (Fonkle) reopened this task as Open.Thu, Jun 27, 10:40 PM

Although the improvement of GP in version ccfb98511b50 (2019-06-27 14:05) is a great omprovement, the awesome paint mode cursor fix seems to have disappeared... returning this issue.

The fix was revert due other considerations by BF developers. They are looking for a more general solution.

We should re-fix this before release. GP draw mode at least is highly problematic with no visible cursor.