search: suppress the cursor when highlighting a match

Having a block cursor present when highlighting a match...
does not look nice.  So... hide the cursor until the next
keystroke, unless --showcursor or 'set showcursor' is used.
master
Benno Schulenberg 2020-12-12 14:50:20 +01:00
parent 856a6ecde3
commit caef3128eb
6 changed files with 10 additions and 1 deletions

View File

@ -80,6 +80,8 @@ linestruct *pletion_line = NULL;
bool also_the_last = FALSE;
/* Whether indenting/commenting should include the last line of
* the marked region. */
bool hide_cursor = FALSE;
/* Whether to suppress the cursor when highlighting a search match. */
char *answer = NULL;
/* The answer string used by the status-bar prompt. */

View File

@ -457,6 +457,9 @@ void show_help(void)
/* Show the cursor when we searched and found something. */
kbinput = get_kbinput(edit, didfind == 1 || ISSET(SHOW_CURSOR));
openfile->mark = NULL;
hide_cursor = FALSE;
didfind = 0;
#ifndef NANO_TINY

View File

@ -1514,6 +1514,7 @@ void process_a_keystroke(void)
input = get_kbinput(edit, VISIBLE);
lastmessage = VACUUM;
hide_cursor = FALSE;
#ifndef NANO_TINY
if (input == KEY_WINCH)

View File

@ -53,6 +53,7 @@ extern message_type lastmessage;
extern linestruct *pletion_line;
extern bool also_the_last;
extern bool hide_cursor;
extern char *answer;

View File

@ -327,6 +327,8 @@ int findnextstr(const char *needle, bool whole_word_only, int modus,
openfile->mark = line;
openfile->mark_x = found_x + found_len;
openfile->softmark = TRUE;
if (!ISSET(SHOW_CURSOR))
hide_cursor = TRUE;
shift_held = TRUE;
}
#endif

View File

@ -181,7 +181,7 @@ void read_keys_from(WINDOW *win)
/* Before reading the first keycode, display any pending screen updates. */
doupdate();
if (reveal_cursor)
if (reveal_cursor && !hide_cursor)
curs_set(1);
#ifndef NANO_TINY