This is the mail archive of the
cygwin-cvs@cygwin.com
mailing list for the Cygwin project.
[newlib-cygwin] Fix console clear screen in case of partial scrolling
- From: Corinna Vinschen <corinna at sourceware dot org>
- To: cygwin-cvs at sourceware dot org
- Date: 1 Aug 2016 10:43:27 -0000
- Subject: [newlib-cygwin] Fix console clear screen in case of partial scrolling
https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=05847ad6e9b505b0d66292bc7ca126e323be3e23
commit 05847ad6e9b505b0d66292bc7ca126e323be3e23
Author: Corinna Vinschen <corinna@vinschen.de>
Date: Mon Aug 1 12:35:51 2016 +0200
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 <corinna@vinschen.de>
Diff:
---
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 f083f7e..24e3a10 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;