0
0
mirror of https://github.com/vim/vim.git synced 2025-07-26 11:04:33 -04:00

patch 8.2.0581: Win32 console: the cursor position is always top-left

Problem:    Win32 console: the cursor position is always top-left.
Solution:   Revert the patch for restoring screen.
This commit is contained in:
Bram Moolenaar 2020-04-15 21:05:30 +02:00
parent edd327cc07
commit 81ccbf199f
2 changed files with 9 additions and 13 deletions

View File

@ -2612,12 +2612,8 @@ mch_init_c(void)
create_conin(); create_conin();
g_hConOut = GetStdHandle(STD_OUTPUT_HANDLE); g_hConOut = GetStdHandle(STD_OUTPUT_HANDLE);
vtp_flag_init();
# ifdef FEAT_RESTORE_ORIG_SCREEN # ifdef FEAT_RESTORE_ORIG_SCREEN
// Save the initial console buffer for later restoration // Save the initial console buffer for later restoration
if (vtp_working && p_rs)
vtp_printf("\033[?1049h");
SaveConsoleBuffer(&g_cbOrig); SaveConsoleBuffer(&g_cbOrig);
g_attrCurrent = g_attrDefault = g_cbOrig.Info.wAttributes; g_attrCurrent = g_attrDefault = g_cbOrig.Info.wAttributes;
# else # else
@ -2675,6 +2671,7 @@ mch_init_c(void)
win_clip_init(); win_clip_init();
# endif # endif
vtp_flag_init();
vtp_init(); vtp_init();
} }
@ -5434,6 +5431,9 @@ termcap_mode_start(void)
if (g_fTermcapMode) if (g_fTermcapMode)
return; return;
if (!p_rs && USE_VTP)
vtp_printf("\033[?1049h");
SaveConsoleBuffer(&g_cbNonTermcap); SaveConsoleBuffer(&g_cbNonTermcap);
if (g_cbTermcap.IsValid) if (g_cbTermcap.IsValid)
@ -5501,11 +5501,10 @@ termcap_mode_end(void)
# ifdef FEAT_RESTORE_ORIG_SCREEN # ifdef FEAT_RESTORE_ORIG_SCREEN
cb = exiting ? &g_cbOrig : &g_cbNonTermcap; cb = exiting ? &g_cbOrig : &g_cbNonTermcap;
if (!(vtp_working && exiting))
# else # else
cb = &g_cbNonTermcap; cb = &g_cbNonTermcap;
# endif # endif
RestoreConsoleBuffer(cb, p_rs); RestoreConsoleBuffer(cb, p_rs);
restore_console_color_rgb(); restore_console_color_rgb();
SetConsoleCursorInfo(g_hConOut, &g_cci); SetConsoleCursorInfo(g_hConOut, &g_cci);
@ -5531,16 +5530,11 @@ termcap_mode_end(void)
/* /*
* Position the cursor at the leftmost column of the desired row. * Position the cursor at the leftmost column of the desired row.
*/ */
# ifdef FEAT_RESTORE_ORG_SCREEN SetConsoleCursorPosition(g_hConOut, coord);
if (!(vtp_working && exiting))
# endif
SetConsoleCursorPosition(g_hConOut, coord);
} }
# ifdef FEAT_RESTORE_ORIG_SCREEN if (!p_rs && USE_VTP)
if (vtp_working && p_rs && exiting)
vtp_printf("\033[?1049l"); vtp_printf("\033[?1049l");
# endif
g_fTermcapMode = FALSE; g_fTermcapMode = FALSE;
} }

View File

@ -746,6 +746,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 */
/**/
581,
/**/ /**/
580, 580,
/**/ /**/