Hide the caret only on the first WM_KEYDOWN.
diff --git a/controls/scroll.c b/controls/scroll.c index c11825e..477b2a1 100644 --- a/controls/scroll.c +++ b/controls/scroll.c
@@ -1159,7 +1159,9 @@ /* if key event is received, the scrollbar has the focus*/ case WM_KEYDOWN: - HideCaret(hwnd); /*hide caret to prevent flicker*/ + /* hide caret on first KEYDOWN to prevent flicker */ + if ((lParam & 0x40000000)==0) + HideCaret(hwnd); SCROLL_HandleKbdEvent( hwnd, wParam ); break;