diff --git a/uppsrc/CtrlCore/Ctrl.cpp b/uppsrc/CtrlCore/Ctrl.cpp index dd9cc08be..9a1d395a9 100644 --- a/uppsrc/CtrlCore/Ctrl.cpp +++ b/uppsrc/CtrlCore/Ctrl.cpp @@ -964,6 +964,7 @@ CH_INT(GUI_AltAccessKeys, 1); CH_INT(GUI_AKD_Conservative, 0); CH_INT(GUI_DragDistance, 4); CH_INT(GUI_DblClickTime, 500); +CH_INT(GUI_WheelScrollLines, 3); String Ctrl::Name0() const { GuiLock __; diff --git a/uppsrc/CtrlCore/CtrlCore.h b/uppsrc/CtrlCore/CtrlCore.h index 01e984d4a..721f7c071 100644 --- a/uppsrc/CtrlCore/CtrlCore.h +++ b/uppsrc/CtrlCore/CtrlCore.h @@ -1301,6 +1301,7 @@ int GUI_AltAccessKeys(); int GUI_AKD_Conservative(); int GUI_DragDistance(); int GUI_DblClickTime(); +int GUI_WheelScrollLines(); void GUI_GlobalStyle_Write(int); void GUI_DragFullWindow_Write(int); @@ -1311,6 +1312,7 @@ void GUI_AltAccessKeys_Write(int); void GUI_AKD_Conservative_Write(int); void GUI_DragDistance_Write(int); void GUI_DblClickTime_Write(int); +void GUI_WheelScrollLines_Write(int); void EditFieldIsThin_Write(int); void TopSeparator1_Write(Value); diff --git a/uppsrc/CtrlLib/ChWin32.cpp b/uppsrc/CtrlLib/ChWin32.cpp index ec42c3381..02f6eefd3 100644 --- a/uppsrc/CtrlLib/ChWin32.cpp +++ b/uppsrc/CtrlLib/ChWin32.cpp @@ -607,6 +607,10 @@ void ChSysInit() GUI_DragDistance_Write(GetSystemMetrics(SM_CXDRAG)); GUI_DblClickTime_Write(GetDoubleClickTime()); + int slines; + SystemParametersInfo(SPI_GETWHEELSCROLLLINES, 0, &slines, 0); + GUI_WheelScrollLines_Write(slines); + CtrlImg::Set(CtrlImg::I_information, Win32Icon(IDI_INFORMATION)); CtrlImg::Set(CtrlImg::I_question, Win32Icon(IDI_QUESTION)); CtrlImg::Set(CtrlImg::I_exclamation, Win32Icon(IDI_EXCLAMATION)); diff --git a/uppsrc/CtrlLib/ScrollBar.cpp b/uppsrc/CtrlLib/ScrollBar.cpp index bd45ce878..58e907499 100644 --- a/uppsrc/CtrlLib/ScrollBar.cpp +++ b/uppsrc/CtrlLib/ScrollBar.cpp @@ -394,8 +394,8 @@ void ScrollBar::NextPage() { Uset(pagepos + max(pagesize - linesize, 1)); } -void ScrollBar::Wheel(int zdelta, int lines) { - Uset(pagepos - lines * linesize * zdelta / 120); +void ScrollBar::Wheel(int zdelta) { + Uset(pagepos - GUI_WheelScrollLines() * linesize * zdelta / 120); } bool ScrollBar::VertKey(dword key, bool homeend) { diff --git a/uppsrc/CtrlLib/ScrollBar.h b/uppsrc/CtrlLib/ScrollBar.h index 5342c5baa..902fdbfa8 100644 --- a/uppsrc/CtrlLib/ScrollBar.h +++ b/uppsrc/CtrlLib/ScrollBar.h @@ -93,7 +93,7 @@ public: void Begin(); void End(); - void Wheel(int zdelta, int lines = 3); + void Wheel(int zdelta); Size GetViewSize() const; Size GetReducedViewSize() const; @@ -221,8 +221,8 @@ public: void HorzBegin() { x.Begin(); } void HorzEnd() { x.End(); } - void WheelX(int zdelta, int lines = 3) { x.Wheel(zdelta, lines); } - void WheelY(int zdelta, int lines = 3) { y.Wheel(zdelta, lines); } + void WheelX(int zdelta) { x.Wheel(zdelta); } + void WheelY(int zdelta) { y.Wheel(zdelta); } Size GetViewSize() const; Size GetReducedViewSize() const;