### Eclipse Workspace Patch 1.0 #P org.eclipse.swt Index: Eclipse SWT/win32/org/eclipse/swt/widgets/Scrollable.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Scrollable.java,v retrieving revision 1.38 diff -u -r1.38 Scrollable.java --- Eclipse SWT/win32/org/eclipse/swt/widgets/Scrollable.java 31 May 2007 22:04:16 -0000 1.38 +++ Eclipse SWT/win32/org/eclipse/swt/widgets/Scrollable.java 24 Jun 2007 19:24:48 -0000 @@ -259,6 +259,8 @@ return result; } +private int lastWheelDelta = 0; + LRESULT WM_MOUSEWHEEL (int wParam, int lParam) { LRESULT result = super.WM_MOUSEWHEEL (wParam, lParam); if (result != null) return result; @@ -274,7 +276,8 @@ if (msg == 0) return result; int [] value = new int [1]; OS.SystemParametersInfo (OS.SPI_GETWHEELSCROLLLINES, 0, value, 0); - int delta = (short) (wParam >> 16); + int delta = ((short) (wParam >> 16)) + lastWheelDelta; + lastWheelDelta = delta % OS.WHEEL_DELTA; int code = 0, count = 0; if (value [0] == OS.WHEEL_PAGESCROLL) { code = delta < 0 ? OS.SB_PAGEDOWN : OS.SB_PAGEUP; Index: Eclipse SWT/win32/org/eclipse/swt/widgets/Widget.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Widget.java,v retrieving revision 1.119 diff -u -r1.119 Widget.java --- Eclipse SWT/win32/org/eclipse/swt/widgets/Widget.java 31 May 2007 22:04:12 -0000 1.119 +++ Eclipse SWT/win32/org/eclipse/swt/widgets/Widget.java 24 Jun 2007 19:24:48 -0000 @@ -1971,9 +1971,12 @@ return result; } +private int lastWheelDelta = 0; + LRESULT wmMouseWheel (int hwnd, int wParam, int lParam) { if (!hooks (SWT.MouseWheel) && !filters (SWT.MouseWheel)) return null; - int delta = wParam >> 16; + int delta = (wParam >> 16) + lastWheelDelta; + lastWheelDelta = delta % OS.WHEEL_DELTA; int [] value = new int [1]; int count, detail; OS.SystemParametersInfo (OS.SPI_GETWHEELSCROLLLINES, 0, value, 0);