[PATCH] comctl32: Improve LISTVIEW_Update?Scroll() a bit. --- Adding '> 0' to 'if (infoPtr->nItemWidth)' is correct, isn't it? Are the two (different) comments correct as they are?
Serge Gautherie
winehq-git_serge_180711 at gautherie.fr
Tue Nov 26 18:43:40 CST 2019
---
dlls/comctl32/listview.c | 26 +++++++++++++++-----------
1 file changed, 15 insertions(+), 11 deletions(-)
diff --git a/dlls/comctl32/listview.c b/dlls/comctl32/listview.c
index acf6f31..0684d34 100644
--- a/dlls/comctl32/listview.c
+++ b/dlls/comctl32/listview.c
@@ -2033,12 +2033,14 @@ static INT LISTVIEW_UpdateHScroll(LISTVIEW_INFO *infoPtr)
INT nPerCol = LISTVIEW_GetCountPerColumn(infoPtr);
horzInfo.nMax = (infoPtr->nItemCount + nPerCol - 1) / nPerCol;
- /* scroll by at least one column per page */
- if(horzInfo.nPage < infoPtr->nItemWidth)
- horzInfo.nPage = infoPtr->nItemWidth;
-
- if (infoPtr->nItemWidth)
- horzInfo.nPage /= infoPtr->nItemWidth;
+ if (infoPtr->nItemWidth > 0)
+ {
+ /* scroll by at least one column per page */
+ if (horzInfo.nPage <= infoPtr->nItemWidth)
+ horzInfo.nPage = 1;
+ else
+ horzInfo.nPage /= infoPtr->nItemWidth;
+ }
}
else if (infoPtr->uView == LV_VIEW_DETAILS)
{
@@ -2097,13 +2099,15 @@ static INT LISTVIEW_UpdateVScroll(LISTVIEW_INFO *infoPtr)
if (infoPtr->uView == LV_VIEW_DETAILS)
{
vertInfo.nMax = infoPtr->nItemCount;
-
- /* scroll by at least one page */
- if(vertInfo.nPage < infoPtr->nItemHeight)
- vertInfo.nPage = infoPtr->nItemHeight;
if (infoPtr->nItemHeight > 0)
- vertInfo.nPage /= infoPtr->nItemHeight;
+ {
+ /* scroll by at least one page */
+ if (vertInfo.nPage <= infoPtr->nItemHeight)
+ vertInfo.nPage = 1;
+ else
+ vertInfo.nPage /= infoPtr->nItemHeight;
+ }
}
else if (infoPtr->uView != LV_VIEW_LIST) /* LV_VIEW_ICON, or LV_VIEW_SMALLICON */
{
--
2.10.0.windows.1
More information about the wine-devel
mailing list