Closed Bug 3010 Opened 26 years ago Closed 26 years ago

Mozilla does not respond to WM_MOUSEWHEEL message

Categories

(Core :: DOM: UI Events & Focus Handling, defect, P2)

x86
Windows NT
defect

Tracking

()

VERIFIED WORKSFORME

People

(Reporter: jeffu, Assigned: rods)

References

()

Details

The wheel on the Micorosoft (and compatible) Intellimouse controls the scroll bar without having to move the mouse. In addition, clicking the wheel (MK_BUTTON) allows up/down scrolling by simply moving the mouse, rather than clicking on the scroll bar. WM_MOUSEWHEEL The WM_MOUSEWHEEL message is sent to the focus window when the mouse wheel is rotated. The DefWindowProc function propagates the message to the window's parent. There should be no internal forwarding of the message, since DefWindowProc propagates it up the parent chain until it finds a window that processes it. WM_MOUSEWHEEL fwKeys = LOWORD(wParam); // key flags zDelta = (short) HIWORD(wParam); // wheel rotation xPos = GET_X_PARAM(lParam); // horizontal position of pointer yPos = GET_Y_PARAM(lParam); // vertical position of pointer Parameters fwKeys Value of the low-order word of wParam. Indicates whether various virtual keys are down. This parameter can be any combination of the following values: Value Description MK_CONTROL Set if the CTRL key is down. MK_LBUTTON Set if the left mouse button is down. MK_MBUTTON Set if the middle mouse button is down. MK_RBUTTON Set if the right mouse button is down. MK_SHIFT Set if the SHIFT key is down. zDelta The value of the high-order word of wParam. Indicates the distance that the wheel is rotated, expressed in multiples or divisions of WHEEL_DELTA, which is 120. A positive value indicates that the wheel was rotated forward, away from the user; a negative value indicates that the wheel was rotated backward, toward the user. xPos Value of the low-order word of lParam. Specifies the x-coordinate of the pointer, relative to the upper-left corner of the screen. yPos Value of the high-order word of lParam. Specifies the y-coordinate of the pointer, relative to the upper-left corner of the screen. Remarks The zDelta parameter will be a multiple of WHEEL_DELTA, which is set at 120. This is the threshold for action to be taken, and one such action (for example, scrolling one increment) should occur for each delta. The delta was set to 120 to allow Microsoft or other vendors to build finer-resolution wheels in the future, including perhaps a freely-rotating wheel with no notches. The expectation is that such a device would send more messages per rotation, but with a smaller value in each message. To support this possibility, you should either add the incoming delta values until WHEEL_DELTA is reached (so for a given delta-rotation you get the same response), or scroll partial lines in response to the more frequent messages. You could also choose your scroll granularity and accumulate deltas until it is reached. The MAKEPOINTS macro can be used to convert the lParam parameter to a POINTS structure. QuickInfo Windows NT: Requires version 4.0 or later. Windows: Requires Windows 98. Windows CE: Unsupported. Header: Declared in winuser.h.
I just noticed that MS is using the control key (MK_CONTROL) and wheel to scroll through the contents of Address/Location/Goto combobox when the input focus is on browser window. Could we set it up so that shift key (MK_SHIFT) and wheel scroll left and right also?
QA Contact: 4130
Assignee: joki → rods
So Rod, you were playing around with mousewheel, you want this one?
Some additional notes for testing purposes. When the MS Intellimouse driver is installed, clicking the mouse wheel (MK_MBUTTON) changes the cursor and allows you to scroll the page left/right and up/down by moving the mouse.
Target Milestone: M7
setting target milestone M7 so this won't appear to be a new bug
Status: NEW → ASSIGNED
Yes, it appears the MOUSE_WHEEL is now broken, it worked just a days or so ago.
Status: ASSIGNED → RESOLVED
Closed: 26 years ago
Resolution: --- → FIXED
I am not sure why this has worked and then not worked. At the moment it works, so there is no bug.
Status: RESOLVED → VERIFIED
well it's worked for a while and it working now so marking VERIFIED with Seamonkey NT 99032912
Status: VERIFIED → REOPENED
Resolution: FIXED → ---
reopening cuz it's broken again. It broke in different degrees over the past week. 1999040323 is the most recent build I have where it works completely. 1999040508 is the first build after that (that I have) where it begins to degrade again. when i say degrade I mean that it goes from working-->working for a little while and then stopping after you play too much--> mouse wheel working but mouse wheel click not-->nothng at all.
Status: REOPENED → RESOLVED
Closed: 26 years ago26 years ago
Resolution: --- → WORKSFORME
Is WORKSFORME really the best resolution here? I would rather not start a new cycle of resolved, verified, reopened ad nauseum. I would much rather hold verification until someone gets a chance to study this and can say either A) this was broken and is now fixed (fix checkd in yadda yadda) or B) someone else's stuff keeps breakng/not breaking this, go bug them (explain who 'they' are').
Status: RESOLVED → VERIFIED
I'm going to mark this VERIFIED fixed for now, but I'm going to keep my eye on it. If it breaks again........ tested with the 1999080908 build.
When GFX scrollbars come into the build and are turned on, the wheel will probably break, those bugs will need to be filed on Eric Vaughan.
Component: Event Handling → User events and focus handling
You need to log in before you can comment on or make changes to this bug.