Commit 9cbe6a64 authored by Benno Schulenberg's avatar Benno Schulenberg
Browse files

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.
No related merge requests found
Showing with 8 additions and 4 deletions
+8 -4
......@@ -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)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment