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 );
}