mirror of
https://github.com/vim/vim.git
synced 2025-07-26 11:04:33 -04:00
patch 8.1.1013: MS-Windows: Scrolling fails when dividing the screen
Problem: MS-Windows: Scrolling fails when dividing the screen. Solution: Position the cursor before calling ScrollConsoleScreenBuffer(). (Nobuhiro Takasaki, closes #4115)
This commit is contained in:
parent
ab89d7ab89
commit
3b5fef6a99
@ -6024,6 +6024,8 @@ insert_lines(unsigned cLines)
|
|||||||
COORD dest;
|
COORD dest;
|
||||||
CHAR_INFO fill;
|
CHAR_INFO fill;
|
||||||
|
|
||||||
|
gotoxy(g_srScrollRegion.Left + 1, g_srScrollRegion.Top + 1);
|
||||||
|
|
||||||
dest.X = g_srScrollRegion.Left;
|
dest.X = g_srScrollRegion.Left;
|
||||||
dest.Y = g_coord.Y + cLines;
|
dest.Y = g_coord.Y + cLines;
|
||||||
|
|
||||||
@ -6037,7 +6039,6 @@ insert_lines(unsigned cLines)
|
|||||||
clip.Right = g_srScrollRegion.Right;
|
clip.Right = g_srScrollRegion.Right;
|
||||||
clip.Bottom = g_srScrollRegion.Bottom;
|
clip.Bottom = g_srScrollRegion.Bottom;
|
||||||
|
|
||||||
{
|
|
||||||
fill.Char.AsciiChar = ' ';
|
fill.Char.AsciiChar = ' ';
|
||||||
if (!USE_VTP)
|
if (!USE_VTP)
|
||||||
fill.Attributes = g_attrCurrent;
|
fill.Attributes = g_attrCurrent;
|
||||||
@ -6047,7 +6048,7 @@ insert_lines(unsigned cLines)
|
|||||||
set_console_color_rgb();
|
set_console_color_rgb();
|
||||||
|
|
||||||
ScrollConsoleScreenBuffer(g_hConOut, &source, &clip, dest, &fill);
|
ScrollConsoleScreenBuffer(g_hConOut, &source, &clip, dest, &fill);
|
||||||
}
|
|
||||||
// Here we have to deal with a win32 console flake: If the scroll
|
// Here we have to deal with a win32 console flake: If the scroll
|
||||||
// region looks like abc and we scroll c to a and fill with d we get
|
// region looks like abc and we scroll c to a and fill with d we get
|
||||||
// cbd... if we scroll block c one line at a time to a, we get cdd...
|
// cbd... if we scroll block c one line at a time to a, we get cdd...
|
||||||
@ -6081,6 +6082,8 @@ delete_lines(unsigned cLines)
|
|||||||
CHAR_INFO fill;
|
CHAR_INFO fill;
|
||||||
int nb;
|
int nb;
|
||||||
|
|
||||||
|
gotoxy(g_srScrollRegion.Left + 1, g_srScrollRegion.Top + 1);
|
||||||
|
|
||||||
dest.X = g_srScrollRegion.Left;
|
dest.X = g_srScrollRegion.Left;
|
||||||
dest.Y = g_coord.Y;
|
dest.Y = g_coord.Y;
|
||||||
|
|
||||||
@ -6094,7 +6097,6 @@ delete_lines(unsigned cLines)
|
|||||||
clip.Right = g_srScrollRegion.Right;
|
clip.Right = g_srScrollRegion.Right;
|
||||||
clip.Bottom = g_srScrollRegion.Bottom;
|
clip.Bottom = g_srScrollRegion.Bottom;
|
||||||
|
|
||||||
{
|
|
||||||
fill.Char.AsciiChar = ' ';
|
fill.Char.AsciiChar = ' ';
|
||||||
if (!USE_VTP)
|
if (!USE_VTP)
|
||||||
fill.Attributes = g_attrCurrent;
|
fill.Attributes = g_attrCurrent;
|
||||||
@ -6104,7 +6106,7 @@ delete_lines(unsigned cLines)
|
|||||||
set_console_color_rgb();
|
set_console_color_rgb();
|
||||||
|
|
||||||
ScrollConsoleScreenBuffer(g_hConOut, &source, &clip, dest, &fill);
|
ScrollConsoleScreenBuffer(g_hConOut, &source, &clip, dest, &fill);
|
||||||
}
|
|
||||||
// Here we have to deal with a win32 console flake; See insert_lines()
|
// Here we have to deal with a win32 console flake; See insert_lines()
|
||||||
// above.
|
// above.
|
||||||
|
|
||||||
|
@ -779,6 +779,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 */
|
||||||
|
/**/
|
||||||
|
1013,
|
||||||
/**/
|
/**/
|
||||||
1012,
|
1012,
|
||||||
/**/
|
/**/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user