From 05847ad6e9b505b0d66292bc7ca126e323be3e23 Mon Sep 17 00:00:00 2001 From: Corinna Vinschen Date: Mon, 1 Aug 2016 12:35:51 +0200 Subject: [PATCH] Fix console clear screen in case of partial scrolling Commit d7586cb incorrectly checked only for the new cursor position beyond the old cursor position to decide if we have to correct for user scrolling. Since this situation is handled just fine if the cursor is still visible, only perform the subsequent correction if the cursor is not in the visible console window. Signed-off-by: Corinna Vinschen --- winsup/cygwin/fhandler_console.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/winsup/cygwin/fhandler_console.cc b/winsup/cygwin/fhandler_console.cc index f083f7e67..24e3a10f5 100644 --- a/winsup/cygwin/fhandler_console.cc +++ b/winsup/cygwin/fhandler_console.cc @@ -1288,8 +1288,8 @@ fhandler_console::clear_screen (cltype xc1, cltype yc1, cltype xc2, cltype yc2) /* Make correction for the following situation: The console buffer is only partially used and the user scrolled down into the as yet - unused area. */ - if (oldEndY < con.dwEnd.Y) + unused area so far that the cursor is outside the window buffer. */ + if (oldEndY < con.dwEnd.Y && oldEndY < con.b.srWindow.Top) { con.dwEnd.Y = con.b.dwCursorPosition.Y = oldEndY; y1 = con.b.srWindow.Top;