Changes

Jump to: navigation, search

Gecko:Mouse Wheel Scrolling

1,229 bytes added, 08:33, 26 January 2010
Mouse wheel transaction
= Mouse wheel transaction =
 
By above rules, users can scroll one scrollable frame smoothly. However, when two or more scrollable frames are nested, we need additional rules.
 
For example, there is a page body which is scrollable and has a scrollable sub frame (e.g., listbox of select element with multiple attribute, div element with overflow property, iframe element). When an user is scrolling down the sub frame, it will be reached to the end of its content. However, some mouse wheel events which were fired after that will scroll the body unexpectedly.
 
And there is another example, when the user is scrolling the page body, the sub frame may come under mouse cursor. Then, the sub frame intercepts the mouse wheel events unexpectedly.
 
We can fix these problems by a simple idea. That is, all users may want to scroll only one scrollable frame at one time. So, we can assume that two or more mouse wheel events which are fired between short term should scroll only one scrollable frame. The frame must be the frame under cursor at the first mouse wheel event.
 
Gecko manages this transaction by nsMouseWheelTransaction which is in [http://mxr.mozilla.org/mozilla-central/source/content/events/src/nsEventStateManager.cpp nsEventStateManager.cpp].
 
= DOM event vs. Scrolling =
= Issues =
87
edits

Navigation menu