UI: fix cursor not displayed after hiding and un-hiding #12811

- TUI: Fix a case where the cursor was not displayed after hiding the
  cursor and then setting it to be displayed again.
- Change to reset everything before setting guicursor.

fixes #12800
close #12811

Steps to reproduce:

    nvim -u NORC
    :set termguicolors
    :hi nCursor guifg=red guibg=red
    :hi iCursor guifg=green guibg=green
    :hi cCursor guifg=blue guibg=blue
    :set guicursor=n:block-nCursor,i:hor25-iCursor,c:ver25-cCursor
    :set guicursor-=c:ver25-cCursor

Actual behaviour: Cursor is a blue vertical.
Expected behaviour: Cursor should be the default color block.
This commit is contained in:
erw7
2020-09-12 11:38:49 -07:00
committed by Justin M. Keyes
parent 1e10342382
commit 397be5d380
4 changed files with 60 additions and 20 deletions

View File

@@ -2738,21 +2738,26 @@ A jump table for the options with a short description can be found at |Q_op|.
hor{N} horizontal bar, {N} percent of the character height
ver{N} vertical bar, {N} percent of the character width
block block cursor, fills the whole character
[only one of the above three should be present]
- Only one of the above three should be present.
- Default is "block" for each mode.
blinkwait{N} *cursor-blinking*
blinkon{N}
blinkoff{N}
blink times for cursor: blinkwait is the delay before
the cursor starts blinking, blinkon is the time that
the cursor is shown and blinkoff is the time that the
cursor is not shown. The times are in msec. When one
of the numbers is zero, there is no blinking. E.g.: >
cursor is not shown. Times are in msec. When one of
the numbers is zero, there is no blinking. E.g.: >
:set guicursor=n:blinkon0
< {group-name}
Highlight group name that sets the color and font for
the cursor. |inverse|/reverse and no group-name are
interpreted as "the host terminal default cursor
colors" which usually invert bg and fg colors.
< - Default is "blinkon0" for each mode.
{group-name}
Highlight group that decides the color and font of the
cursor.
In the |TUI|:
- |inverse|/reverse and no group-name are interpreted
as "host-terminal default cursor colors" which
typically means "inverted bg and fg colors".
- |ctermfg| and |guifg| are ignored.
{group-name}/{group-name}
Two highlight group names, the first is used when
no language mappings are used, the other when they