_wnoutrefresh - fix current position checks for pads

maxy is an absolute value and should not be adjusted for begy when we
check also absolute cury.  Note that this change does not affect
calculations for normal windows as for them we always pass zero for
begy.  Ditto for x.
This commit is contained in:
uwe 2019-01-06 03:59:17 +00:00
parent 182a153ef7
commit aa9d3f22ec
1 changed files with 4 additions and 4 deletions

View File

@ -1,4 +1,4 @@
/* $NetBSD: refresh.c,v 1.103 2019/01/06 03:46:11 uwe Exp $ */
/* $NetBSD: refresh.c,v 1.104 2019/01/06 03:59:17 uwe Exp $ */
/*
* Copyright (c) 1981, 1993, 1994
@ -34,7 +34,7 @@
#if 0
static char sccsid[] = "@(#)refresh.c 8.7 (Berkeley) 8/13/94";
#else
__RCSID("$NetBSD: refresh.c,v 1.103 2019/01/06 03:46:11 uwe Exp $");
__RCSID("$NetBSD: refresh.c,v 1.104 2019/01/06 03:59:17 uwe Exp $");
#endif
#endif /* not lint */
@ -218,10 +218,10 @@ _wnoutrefresh(WINDOW *win, int begy, int begx, int wbegy, int wbegx,
/* Check that cursor position on "win" is valid for "__virtscr" */
if (dwin->cury + wbegy - begy < screen->__virtscr->maxy &&
dwin->cury + wbegy - begy >= 0 && dwin->cury < maxy - begy)
dwin->cury + wbegy - begy >= 0 && dwin->cury < maxy)
screen->__virtscr->cury = dwin->cury + wbegy - begy;
if (dwin->curx + wbegx - begx < screen->__virtscr->maxx &&
dwin->curx + wbegx - begx >= 0 && dwin->curx < maxx - begx)
dwin->curx + wbegx - begx >= 0 && dwin->curx < maxx)
screen->__virtscr->curx = dwin->curx + wbegx - begx;
/* Copy the window flags from "win" to "__virtscr" */