search: when polling the keyboard, consume all waiting keystrokes
When during searching we look at the keyboard, then don't look at just the first keystroke, but check if there are more, and if so, check each one until we find a Cancel -- or until all keystrokes have been consumed and we can continue. This fixes the first half of https://savannah.gnu.org/bugs/?47438.master
parent
c918c6563b
commit
9cbe6a640c
12
src/search.c
12
src/search.c
|
@ -292,10 +292,14 @@ int findnextstr(
|
|||
|
||||
lastkbcheck = time(NULL);
|
||||
|
||||
if (input && func_from_key(&input) == do_cancel) {
|
||||
statusbar(_("Cancelled"));
|
||||
disable_nodelay();
|
||||
return -2;
|
||||
/* Consume all waiting keystrokes until a Cancel. */
|
||||
while (input) {
|
||||
if (func_from_key(&input) == do_cancel) {
|
||||
statusbar(_("Cancelled"));
|
||||
disable_nodelay();
|
||||
return -2;
|
||||
}
|
||||
input = parse_kbinput(NULL);
|
||||
}
|
||||
|
||||
if (++feedback > 0)
|
||||
|
|
Loading…
Reference in New Issue