forked from aniani/vim
patch 8.2.0547: Win32: restoring screen not always done right
Problem: Win32: restoring screen not always done right. Solution: Use a more appropriate method. (Nobuhiro Takasaki, closes #5909)
This commit is contained in:
@@ -2612,8 +2612,12 @@ mch_init_c(void)
|
||||
create_conin();
|
||||
g_hConOut = GetStdHandle(STD_OUTPUT_HANDLE);
|
||||
|
||||
vtp_flag_init();
|
||||
|
||||
# ifdef FEAT_RESTORE_ORIG_SCREEN
|
||||
// Save the initial console buffer for later restoration
|
||||
if (vtp_working && p_rs)
|
||||
vtp_printf("\033[?1049h");
|
||||
SaveConsoleBuffer(&g_cbOrig);
|
||||
g_attrCurrent = g_attrDefault = g_cbOrig.Info.wAttributes;
|
||||
# else
|
||||
@@ -2671,7 +2675,6 @@ mch_init_c(void)
|
||||
win_clip_init();
|
||||
# endif
|
||||
|
||||
vtp_flag_init();
|
||||
vtp_init();
|
||||
}
|
||||
|
||||
@@ -5431,9 +5434,6 @@ termcap_mode_start(void)
|
||||
if (g_fTermcapMode)
|
||||
return;
|
||||
|
||||
if (!p_rs && USE_VTP)
|
||||
vtp_printf("\033[?1049h");
|
||||
|
||||
SaveConsoleBuffer(&g_cbNonTermcap);
|
||||
|
||||
if (g_cbTermcap.IsValid)
|
||||
@@ -5501,6 +5501,7 @@ termcap_mode_end(void)
|
||||
|
||||
# ifdef FEAT_RESTORE_ORIG_SCREEN
|
||||
cb = exiting ? &g_cbOrig : &g_cbNonTermcap;
|
||||
if (!(vtp_working && exiting))
|
||||
# else
|
||||
cb = &g_cbNonTermcap;
|
||||
# endif
|
||||
@@ -5530,11 +5531,16 @@ termcap_mode_end(void)
|
||||
/*
|
||||
* Position the cursor at the leftmost column of the desired row.
|
||||
*/
|
||||
# ifdef FEAT_RESTORE_ORG_SCREEN
|
||||
if (!(vtp_working && exiting))
|
||||
# endif
|
||||
SetConsoleCursorPosition(g_hConOut, coord);
|
||||
}
|
||||
|
||||
if (!p_rs && USE_VTP)
|
||||
# ifdef FEAT_RESTORE_ORIG_SCREEN
|
||||
if (vtp_working && p_rs && exiting)
|
||||
vtp_printf("\033[?1049l");
|
||||
# endif
|
||||
|
||||
g_fTermcapMode = FALSE;
|
||||
}
|
||||
|
||||
@@ -738,6 +738,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
547,
|
||||
/**/
|
||||
546,
|
||||
/**/
|
||||
|
||||
Reference in New Issue
Block a user