diff --git a/src/global.c b/src/global.c index b2177665..1c266892 100644 --- a/src/global.c +++ b/src/global.c @@ -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. */ diff --git a/src/help.c b/src/help.c index c5ea2827..6ff1ae34 100644 --- a/src/help.c +++ b/src/help.c @@ -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 diff --git a/src/nano.c b/src/nano.c index 135ff7b3..5597af8f 100644 --- a/src/nano.c +++ b/src/nano.c @@ -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) diff --git a/src/prototypes.h b/src/prototypes.h index 97e98308..83e90e91 100644 --- a/src/prototypes.h +++ b/src/prototypes.h @@ -53,6 +53,7 @@ extern message_type lastmessage; extern linestruct *pletion_line; extern bool also_the_last; +extern bool hide_cursor; extern char *answer; diff --git a/src/search.c b/src/search.c index 125119ee..3e3e95a9 100644 --- a/src/search.c +++ b/src/search.c @@ -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 diff --git a/src/winio.c b/src/winio.c index 24f91e8c..ea8faaf9 100644 --- a/src/winio.c +++ b/src/winio.c @@ -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