From d9310e76c41b003863610563581c15cdc66e8b98 Mon Sep 17 00:00:00 2001
From: Rein Klazes <rklazes@xs4all.nl>
Date: Tue, 29 Oct 2002 23:08:33 +0000
Subject: [PATCH] Fix for listview wheelmouse message handling.

---
 dlls/comctl32/listview.c | 16 +++++-----------
 1 file changed, 5 insertions(+), 11 deletions(-)

diff --git a/dlls/comctl32/listview.c b/dlls/comctl32/listview.c
index 8f0aa4c0750..0a2865bdb14 100644
--- a/dlls/comctl32/listview.c
+++ b/dlls/comctl32/listview.c
@@ -7325,22 +7325,16 @@ static LRESULT LISTVIEW_MouseWheel(LISTVIEW_INFO *infoPtr, INT wheelDelta)
         *  listview should be scrolled by a multiple of 37 dependently on its dimension or its visible item number
         *  should be fixed in the future.
         */
-        if (GetScrollInfo(infoPtr->hwndSelf, SB_VERT, &scrollInfo))
-            LISTVIEW_VScroll(infoPtr, SB_THUMBPOSITION,
-			     scrollInfo.nPos + (gcWheelDelta < 0) ?
-			     LISTVIEW_SCROLL_ICON_LINE_SIZE :
-			     -LISTVIEW_SCROLL_ICON_LINE_SIZE, 0);
+        LISTVIEW_VScroll(infoPtr, SB_INTERNAL, (gcWheelDelta < 0) ?
+                LISTVIEW_SCROLL_ICON_LINE_SIZE : -LISTVIEW_SCROLL_ICON_LINE_SIZE, 0);
         break;
 
     case LVS_REPORT:
         if (abs(gcWheelDelta) >= WHEEL_DELTA && pulScrollLines)
         {
-            if (GetScrollInfo(infoPtr->hwndSelf, SB_VERT, &scrollInfo))
-            {
-                int cLineScroll = min(LISTVIEW_GetCountPerColumn(infoPtr), pulScrollLines);
-                cLineScroll *= (gcWheelDelta / WHEEL_DELTA);
-                LISTVIEW_VScroll(infoPtr, SB_THUMBPOSITION, scrollInfo.nPos + cLineScroll, 0);
-            }
+            int cLineScroll = min(LISTVIEW_GetCountPerColumn(infoPtr), pulScrollLines);
+            cLineScroll *= (gcWheelDelta / WHEEL_DELTA);
+            LISTVIEW_VScroll(infoPtr, SB_INTERNAL, cLineScroll, 0);
         }
         break;
 
-- 
GitLab