libs-gui icon indicating copy to clipboard operation
libs-gui copied to clipboard

in textviews the mouse cursor flickers while typing

Open rmottola opened this issue 8 months ago • 1 comments

While typing in a NSTextView the mouse continuously changes between arrow and hairline.

Tests: Ink Vs. TextEdit: in ink while you type, the cursor flickers, in TextEdit on Mac, not. The mouse cursor while typing hides, then reappears on first mouse movement.

GNUMail: Create a new message

  • On GNUstep while typing in a TextField (address field) the mouse cursor stays a hairline (it always is so while inside the field)
  • On GNUstep while typing the text message, the mouse cursor changes back and forth.
  • On MacOS: both fields behave the same: the cursor is a hairline when inserting, when typing starts cursor hides and reappears at first mouse movements.

This is a carry-over of bug https://savannah.gnu.org/bugs/?47523 which still applies and was erroneously closed. It may be low-impact but it is still a bug, as per examples above (and because it used to work).

Original comment by Fred of 7-1-2018

It turns out that this was caused by a change Eric made in 2011. In the method [NSTextView.m -_updateState:] he added the update of the cursor rectangles, which is needed for internal cursor rectangles but would not be needed for the main one. I tried a few simple solutions to fix this, but all of these would result in additional issues.

rmottola avatar Jul 11 '25 07:07 rmottola

Addendum: checking other apps on Linux shows mixed behaviour, but still better than GNUstep.

E.g. when typing mails in SeaMonkey composer, the cursor just stays a hairline while inside the text rect, standard cursor while away. The same is when having text fields in a webpage. Firefox implements instead the more sophisticated hide behaviour.

Even the most primitive xedit has a consistent behaviour: while inside the text rect the cursor is a hairline, outside an arrow.

I would argue this is both a bug and potentially an enhancement:

Bug: TextView should behave like TextFields: no flickering. Cursor has to be a hairline inside, an arrow outside, independently of typing. Enhancement: implement cursor auto-hiding while typing, for both Fields and View

rmottola avatar Jul 11 '25 07:07 rmottola