Normally the logic goes like this:
- press Tab -> (in
src/reader/reader.rs,handle_readline_command,rl::Complete)compute_and_apply_completions(..)-> pager open and shows candidates. - press Tab again -> (again in
reader.rs,rl::Complete)self.rls().last_cmd == rl::Completeis now true ->select_completion_in_direction-> candidate selected.
However, is a repaint is issued (for example, by a signal handler function calling commandline -f repaint) between 1 and 2, self.rls().last_cmd becomes rl::Repaint. if I then press Tab again, the condition for candidate selection is no longer met and nothing is selected.
If repaint is triggered repeatedly, I will not be able to select anything.