mirror of
https://github.com/vim/vim.git
synced 2025-09-29 04:34:16 -04:00
patch 7.4.1603
Problem: Timer with an ":echo" command messes up display. Solution: Redraw depending on the mode. (Hirohito Higashi) Avoid the more prompt being used recursively.
This commit is contained in:
@@ -870,6 +870,8 @@ wait_return(int redraw)
|
|||||||
#ifdef USE_ON_FLY_SCROLL
|
#ifdef USE_ON_FLY_SCROLL
|
||||||
dont_scroll = TRUE; /* disallow scrolling here */
|
dont_scroll = TRUE; /* disallow scrolling here */
|
||||||
#endif
|
#endif
|
||||||
|
cmdline_row = msg_row;
|
||||||
|
|
||||||
/* Avoid the sequence that the user types ":" at the hit-return prompt
|
/* Avoid the sequence that the user types ":" at the hit-return prompt
|
||||||
* to start an Ex command, but the file-changed dialog gets in the
|
* to start an Ex command, but the file-changed dialog gets in the
|
||||||
* way. */
|
* way. */
|
||||||
@@ -2426,6 +2428,7 @@ msg_puts_printf(char_u *str, int maxlen)
|
|||||||
static int
|
static int
|
||||||
do_more_prompt(int typed_char)
|
do_more_prompt(int typed_char)
|
||||||
{
|
{
|
||||||
|
static int entered = FALSE;
|
||||||
int used_typed_char = typed_char;
|
int used_typed_char = typed_char;
|
||||||
int oldState = State;
|
int oldState = State;
|
||||||
int c;
|
int c;
|
||||||
@@ -2437,6 +2440,13 @@ do_more_prompt(int typed_char)
|
|||||||
msgchunk_T *mp;
|
msgchunk_T *mp;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
/* We get called recursively when a timer callback outputs a message. In
|
||||||
|
* that case don't show another prompt. Also when at the hit-Enter prompt.
|
||||||
|
*/
|
||||||
|
if (entered || State == HITRETURN)
|
||||||
|
return FALSE;
|
||||||
|
entered = TRUE;
|
||||||
|
|
||||||
if (typed_char == 'G')
|
if (typed_char == 'G')
|
||||||
{
|
{
|
||||||
/* "g<": Find first line on the last page. */
|
/* "g<": Find first line on the last page. */
|
||||||
@@ -2675,6 +2685,7 @@ do_more_prompt(int typed_char)
|
|||||||
msg_col = Columns - 1;
|
msg_col = Columns - 1;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
entered = FALSE;
|
||||||
#ifdef FEAT_CON_DIALOG
|
#ifdef FEAT_CON_DIALOG
|
||||||
return retval;
|
return retval;
|
||||||
#else
|
#else
|
||||||
|
@@ -418,8 +418,15 @@ redraw_asap(int type)
|
|||||||
void
|
void
|
||||||
redraw_after_callback()
|
redraw_after_callback()
|
||||||
{
|
{
|
||||||
|
if (State == HITRETURN || State == ASKMORE)
|
||||||
|
; /* do nothing */
|
||||||
|
else if (State & CMDLINE)
|
||||||
|
redrawcmdline();
|
||||||
|
else if ((State & NORMAL) || (State & INSERT))
|
||||||
|
{
|
||||||
update_screen(0);
|
update_screen(0);
|
||||||
setcursor();
|
setcursor();
|
||||||
|
}
|
||||||
cursor_on();
|
cursor_on();
|
||||||
out_flush();
|
out_flush();
|
||||||
#ifdef FEAT_GUI
|
#ifdef FEAT_GUI
|
||||||
|
@@ -748,6 +748,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
1603,
|
||||||
/**/
|
/**/
|
||||||
1602,
|
1602,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user