What steps will reproduce the problem? 1. Create an empty project. 2. Add Syntaxbox control 3. Create enough sample text to force the control to require vertical scrolling to view all content. 4. Scroll the window with the mouse wheel.
What is the expected output? What do you see instead? I have to flick the mouse wheel very hard 3-4 times in a row to get the control to scroll 2 or 3 lines. Then 3 or 4 more hard flicks and it scrolls a little more. Very frustrating
What version of the product are you using? On what operating system?
- Windows Vista SP1.
- VS2008.
- Microsoft Wireless Mouse 5000.
- Latest version of intellipoint drivers (as of this date stamp on this post)
- The version of Syntaxbox contained in the zip file for download (dated June 2008 I think). And also the latest version in SVN. Both versions won't scroll.
Please provide any additional information below. I have done everything I can think of. I have uninstalled/reinstalled/updated all mouse drivers. Tried two version of the control as indicated above. I have played with various mouse settings, as well as scrolling settings of the Syntaxbox control. All to no avail.
I also happen to have a VMWare virtual machine on my system running Windows Server 2003. This issue does not exist while running it in the VM.
I'm beginning to think it has more to do with Vista than with your control. I guess I'm hoping there is a work around.
Thanks!
Comment #1
Posted on Aug 4, 2009 by Happy DogOk, I've done quite a lot of research and tinkering, and I've finally figured out why this is happening. I've even created an SVN patch for my solution. It's ugly but it works
With respect to the OnMouseWheel event on line 3377 of EditViewControl.cs (r508)
The MSDN documentation states that the normal mouse delta is 120. On my Server 2003 VM, e.delta was either 120 or a factor of: (120, 240, etc). With a value of 120 or greater, the expression e.delta/120*l evaluated to a non zero integer.
This is all well and good. However, on my Vista machine, e.delta was 30, 60, 90, or 120. With a value of less than 120, the expression mentioned above evaluated to zero. In other words, zero lines scrolled.
I have no idea why this is. I don't know if it's my mouse driver, mouse hardware, Vista OS, etc. Who knows.
My patch essentially prevents the expression from evaluating to zero, ensuring it's always at least 1, or -1 depending on the direction the mouse wheel was flicked.
I could have taken my mouse's delta and multiplied by 4. However, what happens if someone else has funky deltas like 50, 100, 150, etc? Perhaps there is a delta multiplier somewhere in the .NET classes. shrug
Anyway... patch is attached.
Thanks!
Status: New
Labels:
Type-Defect
Priority-Medium