dll/win32/comctl32/listview.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/dll/win32/comctl32/listview.c b/dll/win32/comctl32/listview.c index fb40d227df..0ad8f19fa5 100644 --- a/dll/win32/comctl32/listview.c +++ b/dll/win32/comctl32/listview.c @@ -2076,6 +2076,7 @@ static INT LISTVIEW_UpdateHScroll(LISTVIEW_INFO *infoPtr) horzInfo.fMask = SIF_RANGE | SIF_PAGE; horzInfo.nMax = max(horzInfo.nMax - 1, 0); + horzInfo.nMax = (horzInfo.nPage == 0 ? 0 : horzInfo.nMax); dx = GetScrollPos(infoPtr->hwndSelf, SB_HORZ); dx -= SetScrollInfo(infoPtr->hwndSelf, SB_HORZ, &horzInfo, TRUE); TRACE("horzInfo=%s\n", debugscrollinfo(&horzInfo)); @@ -2099,7 +2100,7 @@ static INT LISTVIEW_UpdateVScroll(LISTVIEW_INFO *infoPtr) ZeroMemory(&vertInfo, sizeof(SCROLLINFO)); vertInfo.cbSize = sizeof(SCROLLINFO); - vertInfo.nPage = infoPtr->rcList.bottom - infoPtr->rcList.top; + vertInfo.nPage = abs(infoPtr->rcList.bottom - infoPtr->rcList.top); if (infoPtr->uView == LV_VIEW_DETAILS) {