help: after a search, show the cursor only when something was found
And hide the cursor again as soon as the user scrolls. Achieve this through making the 'didfind' variable global. Also, remove a superfluous call of wnoutrefresh(), as bottombars() already does that. This fixes https://savannah.gnu.org/bugs/?50918. Reported-by: David Lawrence Ramsey <pooka109@gmail.com>master
parent
3d1ef8e07f
commit
9c2bc68847
|
@ -68,6 +68,9 @@ bool inhelp = FALSE;
|
||||||
char *title = NULL;
|
char *title = NULL;
|
||||||
/* When not NULL: the title of the current help text. */
|
/* When not NULL: the title of the current help text. */
|
||||||
|
|
||||||
|
int didfind = 0;
|
||||||
|
/* Whether the last search found something. */
|
||||||
|
|
||||||
int controlleft, controlright, controlup, controldown, controlhome, controlend;
|
int controlleft, controlright, controlup, controldown, controlhome, controlend;
|
||||||
#ifndef NANO_TINY
|
#ifndef NANO_TINY
|
||||||
int shiftcontrolleft, shiftcontrolright, shiftcontrolup, shiftcontroldown;
|
int shiftcontrolleft, shiftcontrolright, shiftcontrolup, shiftcontroldown;
|
||||||
|
|
10
src/help.c
10
src/help.c
|
@ -183,6 +183,7 @@ void do_help(void)
|
||||||
while (TRUE) {
|
while (TRUE) {
|
||||||
lastmessage = HUSH;
|
lastmessage = HUSH;
|
||||||
focusing = TRUE;
|
focusing = TRUE;
|
||||||
|
didfind = 0;
|
||||||
|
|
||||||
kbinput = get_kbinput(edit);
|
kbinput = get_kbinput(edit);
|
||||||
|
|
||||||
|
@ -207,12 +208,9 @@ void do_help(void)
|
||||||
} else if (func == do_search) {
|
} else if (func == do_search) {
|
||||||
do_search();
|
do_search();
|
||||||
bottombars(MHELP);
|
bottombars(MHELP);
|
||||||
wnoutrefresh(bottomwin);
|
|
||||||
curs_set(1);
|
|
||||||
} else if (func == do_research) {
|
} else if (func == do_research) {
|
||||||
do_research();
|
do_research();
|
||||||
currmenu = MHELP;
|
currmenu = MHELP;
|
||||||
curs_set(1);
|
|
||||||
#ifndef NANO_TINY
|
#ifndef NANO_TINY
|
||||||
} else if (kbinput == KEY_WINCH) {
|
} else if (kbinput == KEY_WINCH) {
|
||||||
; /* Nothing to do. */
|
; /* Nothing to do. */
|
||||||
|
@ -229,6 +227,12 @@ void do_help(void)
|
||||||
} else
|
} else
|
||||||
unbound_key(kbinput);
|
unbound_key(kbinput);
|
||||||
|
|
||||||
|
/* If we searched and found something, let the cursor show it. */
|
||||||
|
if (didfind == 1)
|
||||||
|
curs_set(1);
|
||||||
|
else
|
||||||
|
curs_set(0);
|
||||||
|
|
||||||
edit_refresh();
|
edit_refresh();
|
||||||
|
|
||||||
location = 0;
|
location = 0;
|
||||||
|
|
|
@ -54,6 +54,8 @@ extern filestruct *pletion_line;
|
||||||
extern bool inhelp;
|
extern bool inhelp;
|
||||||
extern char *title;
|
extern char *title;
|
||||||
|
|
||||||
|
extern int didfind;
|
||||||
|
|
||||||
extern int controlleft;
|
extern int controlleft;
|
||||||
extern int controlright;
|
extern int controlright;
|
||||||
extern int controlup;
|
extern int controlup;
|
||||||
|
|
|
@ -438,7 +438,6 @@ void go_looking(void)
|
||||||
{
|
{
|
||||||
filestruct *was_current = openfile->current;
|
filestruct *was_current = openfile->current;
|
||||||
size_t was_current_x = openfile->current_x;
|
size_t was_current_x = openfile->current_x;
|
||||||
int didfind;
|
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
clock_t start = clock();
|
clock_t start = clock();
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue