Anonymous | Login | 03-02-2021 23:27 UTC |
Main | My View | View Issues | Change Log | Docs |
Viewing Issue Simple Details [ Jump to Notes ] | [ View Advanced ] [ Issue History ] [ Print ] | |||||||||||
ID | Category | Severity | Reproducibility | Date Submitted | Last Update | |||||||
0003721 | [Squeak] VM | minor | always | 05-26-06 15:06 | 12-29-07 03:32 | |||||||
Reporter | VSV | View Status | public | |||||||||
Assigned To | andreas | |||||||||||
Priority | normal | Resolution | open | |||||||||
Status | assigned | Product Version | ||||||||||
Summary | 0003721: [FIX] Wheel Scrolling Misbehavior in Win32 with Genius Mouse Driver | |||||||||||
Description |
If using the mouse wheel with any of "Genius NetScroll[+] [Optical] Mouse", scrolling works only down, scrolling up causes 'shaking' and/or scrolls down. All current win32 VMs (including Croquet) are affected . |
|||||||||||
Additional Information |
In the "sqWin32Window.c" -> "MainWndProc", where the "WM_MOUSEWHEEL" messages are translated to <ctrl-up> and <crtl-down> keystrokes (in 3.7.1 souces on line 0000218), the conditional expression is "evt->charCode = (zDelta > 0) ? 30 : 31;", causing the zero to be aligned as *negative* value. The Genius driver in it's enhanced mode sends two messages for every wheel movement - first with maximal (+-120) and second with minimal zDelta-value, but the driver treats *zero* as the minimal positive value (-1 is the negative). That may be also considered a bug, but the the fact is - zero *should be* ever aligned as positive. This can be easily fixed by reversing the condition to: "evt->charCode = (zDelta < 0) ? 31 : 30;" I'm using a fixed VM for several months and it works all right. Attached is the fixed file from 3.7.1 sources. |
|||||||||||
Attached Files |
![]() |
|||||||||||
|
Mantis 1.0.8[^]
Copyright © 2000 - 2007 Mantis Group
46 total queries executed. 33 unique queries executed. |