IP Library › Granted Patent US 8,587,521
Granted Patent B2
US 8,587,521 · App. 12/847,258 · Granted Nov 19, 2013

Scrolling inertia

Inventors: Terry Lynn Zielke (Loveland, CO); Derek W. Hanson (Ft. Collins, CO)
Assignee: Hewlett-Packard Development Company, L.P.
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,587,521
App. No.
12/847,258
Granted
Nov 19, 2013
Kind
B2
Abstract

A computer mouse notifies a mouse driver whenever a scroll event occurs as a result of rotation of a scroll wheel. In response to receiving a notification of a scroll event, the mouse driver adjusts a stored value that represents inertia calculated based on elapsed time between scroll events. The computer scrolls a number of lines on a display, the number being based on the stored value. When the stored value does not represent zero inertia and upon a predetermined amount of time elapsing without occurrence of a scroll event, the computer scrolls a second number of lines on the display. The second number is based on the stored value. The mouse driver adjusts the stored value so as to represent a decrease in inertia.

Claims (59)

1. A method for scrolling through a display comprising:

detecting elapsed time between each of a plurality of scroll events resulting from a user turning a scroll wheel;

upon detecting each scroll event in the plurality of scroll events, performing the following:

adjusting a stored value that represents inertia calculated based on elapsed time between scroll events, and

scrolling a number of lines, the number being based on the stored value; and,

when the stored value does not represent zero inertia and upon a predetermined amount of time elapsing without occurrence of a scroll event, performing the following:

scrolling a second number of lines, the second number being based on the stored value, and

adjusting the stored value so as to represent a decrease in inertia, wherein adjusting the stored value based on elapsed time between scroll events comprises:

adjusting the stored value to indicate an increase of inertia when elapsed time between scroll events is decreasing; and

adjusting the stored value to indicate a decrease in inertia when the elapsed time between scroll events is increasing.

2. A method as in claim 1 wherein adjusting the stored value based on elapsed time between scroll events comprises:

increasing the stored value by two times an acceleration coefficient when elapsed time between scroll events decreases at least a predetermined amount of time;

increasing the stored value by the acceleration coefficient when elapsed time between scroll events decreases less than the predetermined amount of time;

decreasing the stored value by two times a deceleration coefficient when elapsed time between scroll events increases at least a second predetermined amount of time; and

decreasing the stored value by the deceleration coefficient when elapsed time between scroll events increases less than the second predetermined amount of time.

3. A method as in claim 2 wherein adjusting the stored value to indicate a decrease in inertia comprises:

decreasing the stored value by a drag coefficient.

4. A method as in claim 1 wherein adjusting the stored value to indicate a decrease in inertia comprises:

decreasing the stored value by a drag coefficient.

5. A method as in claim 1 additionally comprising:

storing a maximum value for the stored value.

6. A method as in claim 1 additionally comprising:

increasing an initial value for the stored value when a predetermined number of scroll events are detected.

7. An input system comprising:

a computer mouse including a scroll wheel; and,

a mouse driver for the computer mouse, the mouse driver residing on a computer;

wherein the computer mouse notifies the mouse driver whenever a scroll event occurs as a result of rotation of the scroll wheel;

wherein in response to receiving a notification of a scroll event, the mouse driver adjusts a stored value that represents inertia calculated based on elapsed time between scroll events and the computer scrolls a number of lines on a display, the number being based on the stored value;

wherein when the stored value does not represent zero inertia and upon a predetermined amount of time elapsing without occurrence of a scroll event, the computer scrolls a second number of lines on the display, the second number being based on the stored value, and the mouse driver adjusts the stored value so as to represent a decrease in inertia; and

wherein the mouse driver adjusts the stored value based on elapsed time between scroll events by:

adjusting the stored value to indicate an increase of inertia when elapsed time between scroll events is decreasing; and

adjusting the stored value to indicate a decrease in inertia when the elapsed time between scroll events is increasing.

8. An input system as in claim 7 wherein the mouse driver adjusts the stored value based on elapsed time between scroll events by:

increasing the stored value by two times an acceleration coefficient when elapsed time between scroll events decreases at least a predetermined amount of time;

increasing the stored value by the acceleration coefficient when elapsed time between scroll events decreases less than the predetermined amount of time;

decreasing the stored value by two times a deceleration coefficient when elapsed time between scroll events increases at least a second predetermined amount of time; and

decreasing the stored value by the deceleration coefficient when elapsed time between scroll events increases less than the second predetermined amount of time.

9. An input system as in claim 8 wherein the mouse driver adjusts the stored value so as to represent a decrease in inertia by decreasing the stored value by a drag coefficient.

10. An input system as in claim 7 wherein the mouse driver adjusts the stored value so as to represent a decrease in inertia by decreasing the stored value by a drag coefficient.

11. An input system as in claim 7 wherein the mouse driver stores a maximum value for the stored value.

12. An input system as in claim 7 wherein the mouse driver increases an initial value for the stored value when a predetermined number of scroll events are detected.

13. A mouse driver residing on a computer, the mouse driver comprising:

a scroll wheel handling block, the scroll wheel handling block in response to receiving notification of a scroll event occurs as a result of rotation of a scroll wheel on a computer mouse, adjusting a stored value that represents inertia calculated based on elapsed time between scroll events;

wherein the computer scrolls a number of lines on a display, the number being based on the stored value; and,

wherein when the stored value does not represent zero inertia and upon a predetermined amount of time elapsing without occurrence of a scroll event, the computer scrolls a second number of lines on the display, the second number being based on the stored value, and the scroll wheel handling block adjusts the stored value so as to represent a decrease in inertia, wherein the scroll wheel handling block adjusts the stored value based on elapsed time between scroll events by:

adjusting the stored value to indicate an increase of inertia when elapsed time between scroll events is decreasing; and

adjusting the stored value to indicate a decrease in inertia when the elapsed time between scroll events is increasing.

14. A mouse driver as in claim 13 wherein the scroll wheel handling block adjusts the stored value based on elapsed time between scroll events by:

increasing the stored value by two times an acceleration coefficient when elapsed time between scroll events decreases at least a predetermined amount of time;

increasing the stored value by the acceleration coefficient when elapsed time between scroll events decreases less than the predetermined amount of time;

decreasing the stored value by two times a deceleration coefficient when elapsed time between scroll events increases at least a second predetermined amount of time; and

decreasing the stored value by the deceleration coefficient when elapsed time between scroll events increases less than the second predetermined amount of time.

15. A mouse driver as in claim 14 wherein the scroll wheel handling block adjusts the stored value so as to represent a decrease in inertia by decreasing the stored value by a drag coefficient.

16. A mouse driver as in claim 14 wherein the scroll wheel handling block stores a maximum value for the stored value.

17. A mouse driver as in claim 14 wherein the scroll wheel handling block increases an initial value for the stored value when a predetermined number of scroll events are detected.

18. The method of claim 1 , wherein the second number of lines are scrolled during a coasting state.

19. The method of claim 1 , wherein the scrolling of the second number of lines is initiated prior to detection of an additional scroll event following the scrolling of the number of lines.

20. The input system of claim 7 , wherein the second number of lines are scrolled during a coasting state of the input system.

21. The mouse driver of claim 13 , wherein the second number of lines are scrolled during a coasting state of the mouse driver.

Assignments (2)
CORRECTIVE ASSIGNMENT TO CORRECT THE CORRESPONDENCE DATA ENTERED AS DOUGLAS WELLER; SANTA CLARA, CA PREVIOUSLY RECORDED ON REEL 024768 FRAME 0607. ASSIGNOR(S) HEREBY CONFIRMS THE CORRESPONDENCE: HEWLETT- PACKARD COMPANY ADDRESS AS STATED IN THIS CORRECTIVE REQUEST.. Recorded Sep 24, 2013
From: ZIELKE, TERRI LYNN; HANSON, DEREK W
To: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
Reel/Frame 031282/0281 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 30, 2010
From: ZIELKE, TERRY LYNN; HANSON, DEREK W.
To: HEWLETT-PACKARD DEVELOPMENT CO., L.P.
Reel/Frame 024768/0607 →
Continuity (1)
Related Publication 20120026090A1 · Feb 2, 2012