diff --git a/src/search.c b/src/search.c index a7f19a7f715a98314bc0a47311319face49cfe10..24d6004edf38a32151b41a5492f4450b1b1c1125 100644 --- a/src/search.c +++ b/src/search.c @@ -294,6 +294,7 @@ int findnextstr( if (input && func_from_key(&input) == do_cancel) { statusbar(_("Cancelled")); + disable_nodelay(); return -2; } diff --git a/src/winio.c b/src/winio.c index 5260a580d033941aacd76ca159b1dd4cc2a9ba8f..549a087fbc1ad2ab8ce7c87b0afaba120b792958 100644 --- a/src/winio.c +++ b/src/winio.c @@ -180,8 +180,9 @@ void get_key_buffer(WINDOW *win) key_buffer[key_buffer_len - 1] = input; } - /* Switch back to waiting mode for input. */ - nodelay(win, FALSE); + /* Restore waiting mode if it was on. */ + if (!nodelay_mode) + nodelay(win, FALSE); #ifdef DEBUG {