On mouse down in thumb, issue SB_THUMBTRACK with current position.
On mouse up in thumb, issue SB_THUMBPOSITION followed by
SB_ENDSCROLL.

diff --git a/controls/scroll.c b/controls/scroll.c
index 7143c56..b00bad8 100644
--- a/controls/scroll.c
+++ b/controls/scroll.c
@@ -1102,6 +1102,18 @@
         break;
     }
 
+    if (msg == WM_LBUTTONDOWN)
+    {
+
+        if (hittest == SCROLL_THUMB)
+        {
+            UINT val = SCROLL_GetThumbVal( infoPtr, &rect, vertical,
+                                 trackThumbPos + lastMousePos - lastClickPos );
+            SendMessageA( hwndOwner, vertical ? WM_VSCROLL : WM_HSCROLL,
+                            MAKEWPARAM( SB_THUMBTRACK, val ), (LPARAM)hwndCtl );
+        }
+    }
+
     if (msg == WM_LBUTTONUP)
     {
 	hittest = SCROLL_trackHitTest;
@@ -1114,8 +1126,7 @@
             SendMessageA( hwndOwner, vertical ? WM_VSCROLL : WM_HSCROLL,
                             MAKEWPARAM( SB_THUMBPOSITION, val ), (LPARAM)hwndCtl );
         }
-        else
-            SendMessageA( hwndOwner, vertical ? WM_VSCROLL : WM_HSCROLL,
+        SendMessageA( hwndOwner, vertical ? WM_VSCROLL : WM_HSCROLL,
                           SB_ENDSCROLL, (LPARAM)hwndCtl );
     }