prompt: work around a VTE bug by outdancing an ncurses optimization

This fixes https://savannah.gnu.org/bugs/?48852.
master
Benno Schulenberg 2016-08-25 10:42:46 +02:00
parent bd1c5d7c63
commit c22cd03f18
1 changed files with 7 additions and 2 deletions

View File

@ -455,8 +455,15 @@ void reset_statusbar_cursor(void)
size_t start_col = strlenpt(prompt) + 2; size_t start_col = strlenpt(prompt) + 2;
size_t xpt = statusbar_xplustabs(); size_t xpt = statusbar_xplustabs();
/* Work around a cursor-misplacement bug in VTEs. */
wmove(bottomwin, 0, 0);
wnoutrefresh(bottomwin);
doupdate();
wmove(bottomwin, 0, start_col + xpt - wmove(bottomwin, 0, start_col + xpt -
get_statusbar_page_start(start_col, start_col + xpt)); get_statusbar_page_start(start_col, start_col + xpt));
wnoutrefresh(bottomwin);
} }
/* Repaint the statusbar. */ /* Repaint the statusbar. */
@ -487,7 +494,6 @@ void update_the_statusbar(void)
statusbar_pww = statusbar_xplustabs(); statusbar_pww = statusbar_xplustabs();
reset_statusbar_cursor(); reset_statusbar_cursor();
wnoutrefresh(bottomwin);
} }
/* Update the statusbar line /if/ the placewewant changes page. */ /* Update the statusbar line /if/ the placewewant changes page. */
@ -672,7 +678,6 @@ functionptrtype get_prompt_string(int *actual, bool allow_tabs,
last_kbinput = kbinput; last_kbinput = kbinput;
#endif #endif
reset_statusbar_cursor(); reset_statusbar_cursor();
wnoutrefresh(bottomwin);
} }
#ifndef DISABLE_HISTORIES #ifndef DISABLE_HISTORIES