Attempt to solve bug #17497 by minimizing cursor motion during TTY menu updates.
src/term.c (tty_menu_display): Don't position cursor here. Instead, pass the cursor coordinates to update_frame_with_menu. (tty_menu_activate): Send the hide cursor command only once in an iteration through the outer 'while' loop. src/dispnew.c (update_frame_1): Accept an additional argument SET_CURSOR_P, and position the cursor at the end of the frame update only if that argument is non-zero. All callers changed to provide the additional argument as non-zero, except for update_frame_with_menu. (update_frame_with_menu): Accept 2 additional arguments ROW and COL; if they are non-negative, instruct update_frame_1 not to position the cursor, and instead position it according to ROW and COL. src/dispextern.h (update_frame_with_menu): Update prototype.
Showing with 50 additions and 18 deletions