WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
Scrolling contents of a window    
United States Patent5495566   
Link to this pagehttp://www.wikipatents.com/5495566.html
Inventor(s)Kwatinetz; Andrew (Seattle, WA)
AbstractAn improved method and system is provided for scrolling contents of a window. In accordance with a first aspect of the present invention, variable speed scrolling is provided when scrolling beyond a screen boundary. In accordance with the first aspect of the present invention, the variable speed is proportional to the acceleration of the mouse cursor. In accordance with a second aspect of the present invention, variable speed scrolling is provided when scrolling beyond a screen boundary. The variable speed of the second aspect of the present invention is inversely proportional to a number of times that scrolling has been initiated. In accordance with a third aspect of the present invention, an improved method and system for scrolling in response to navigation key input is provided. In accordance with the third aspect of the present invention, a scrolling mode is selected after examining navigation key input. When the navigation key input comprises more than a predefined number of keys with each key being received within a predefined period of time, the third aspect of the present invention performs jump to scrolling. If there are less than the predefined number of keys or the keys are not within the predefined time period, the third aspect of the present invention performs animated scrolling.
   














 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History
Drawing from US Patent 5495566
Scrolling contents of a window - US Patent 5495566 Drawing
Scrolling contents of a window
Inventor     Kwatinetz; Andrew (Seattle, WA)
Owner/Assignee     Microsoft Corporation (Redmond, WA)
Patent assignment
All assignments
Publication Date     February 27, 1996
Application Number     08/343,780
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     November 22, 1994
US Classification     715/785 345/684
Int'l Classification     G06F 003/14
Examiner     Bayerl; Raymond J.
Assistant Examiner     Ho; Ruay Lian
Attorney/Law Firm     Seed and Berry
Address
Parent Case    
Priority Data    
USPTO Field of Search     395/157 395/156 395/159 395/161 345/118 345/119 345/157
Patent Tags     scrolling contents window
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
5374942
Gilligan

Dec,1994

[0 after 0 votes]
5373309
Totsuka
715/856
Dec,1994

[0 after 0 votes]
5313229
Gilligan
345/157
May,1994

[0 after 0 votes]
5299307
Young

Mar,1994

[0 after 0 votes]
5196838
Meier
345/684
Mar,1993

[0 after 0 votes]
5196838
Meier
345/684
Mar,1993

[0 after 0 votes]
5169342
Steele
434/112
Dec,1992

[0 after 0 votes]
5157768
Hoeber
715/711
Oct,1992

[0 after 0 votes]
5155806
Hoeber
715/711
Oct,1992

[0 after 0 votes]
4984152
Muller
715/856
Jan,1991

[0 after 0 votes]
4831556
Oono
715/786
May,1989

[0 after 0 votes]
4794386
Bedrij
715/803
Dec,1988

[0 after 0 votes]
4789962
Berry
715/715
Dec,1988

[0 after 0 votes]
4313113
Thornburg
345/159
Jan,1982

[0 after 0 votes]
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


I claim:

1. In a computer system having a video display, an input device with an input device indicator that is visible on the video display and reflects movement of the input device, and a computer program for displaying a window with contents on the video display, the window having a predefined area for triggering scrolling the contents of the window, a method for displaying the contents of a window comprising the steps of:

while the input device indicator is moving,

determining a current location of the input device indicator on the video display;

determining an acceleration of the input device indicator when the current location of the input device indicator is within the predefined area, wherein the input device indicator has an associated acceleration;

designating a speed for scrolling the contents of the window such that the designated speed is non-zero and proportional to the acceleration of the input device indicator; and

scrolling the contents of the window at the designated speed.

2. In a computer system having a video display, an input device with an input device indicator that is visible on the video display and reflects movement of the input device, and a computer program for displaying a window with contents on the video display, the window having a predefined area, a method for displaying the contents of a window comprising the steps of:

initiating selection of contents of the window;

while selecting the contents of the window with the input device in response to user input,

determining a current location of the input device indicator on the video display;

determining whether the current location of the input device indicator is within the predefined area; and

when the current location of the input device indicator is within the predefined area,

determining an acceleration of the input device indicator, wherein the input device indicator has an associated acceleration;

designating a speed for the scrolling of the contents of the window such that the designated speed is non-zero and proportional to the acceleration of the input device indicator; and

scrolling the contents of the window at the designated speed.

3. The method of claim 2 wherein the computer program is an operating system, wherein the contents of the window are screen objects, and wherein the step of scrolling the contents includes the step of scrolling the screen objects at the designated speed by the operating system.

4. The method of claim 2 wherein the computer program is a word processor, wherein the contents of the window is text, and wherein the step of scrolling the contents includes the step of scrolling the text at the designated speed by the word processor.

5. The method of claim 2 wherein the computer program is a database, wherein the contents of the window are database records, and wherein the step of scrolling the contents includes the step of scrolling the database records at the designated speed by the database.

6. The method of claim 2 wherein the computer program is a spreadsheet program, wherein the contents of the window are spreadsheet cells, and wherein the step of scrolling the contents includes the step of scrolling the spreadsheet cells at the designated speed by the spreadsheet program.

7. In a computer system having a video display, an input device with an input device indicator that is visible on the video display and reflects movement of the input device, and a computer program for displaying a window with contents on the video display, the input device having an associated speed and having an associated acceleration, a method for displaying the contents of the window comprising the steps of:

initiating a selection of the contents of the window with the input device in response to user input;

determining whether the input device indicator is at a window boundary; and

when the input device indicator is at the window boundary,

determining with the computer program whether the speed of the input device indicator is within a predefined range;

when it is determined that the speed is within the predefined range,

determining the acceleration of the input device indicator;

scrolling the window by the computer program at a speed proportional to the acceleration of the input device indicator; and

when it is determined that the speed is not within the predefined range,

scrolling the window by the computer program at a predefined speed.

8. The method of claim 7 wherein the input device is a mouse.

9. In a computer system having a video display and a computer program for displaying a window with contents on the video display, a method for displaying contents of a window comprising the steps of:

receiving at least one request in accordance with user input to scroll the contents of the window;

determining a number of requests received for scrolling the contents of the window;

designating a scroll speed that is inversely proportional to the number of requests received; and

scrolling the contents of the window at the designated scroll speed.

10. The method of claim 9 wherein the computer program is an operating system, wherein the contents of the window are screen objects, and wherein the step of scrolling the contents includes the step of scrolling the screen objects at the designated speed by the operating system.

11. The method of claim 9 wherein the computer program is a word processor, wherein the contents of the window is text, and wherein the step of scrolling the contents includes the step of scrolling the text at the designated speed by the word processor.

12. The method of claim 9 wherein the computer program is a database, wherein the contents of the window are database records, and wherein the step of scrolling the contents includes the step of scrolling the database records at the designated speed by the database.

13. The method of claim 9 wherein the computer program is a spreadsheet program, wherein the contents of the window are spreadsheet cells, and wherein the step of scrolling includes the step of scrolling the spreadsheet cells at the designated speed by the spreadsheet program.

14. In a computer system having a video display, an input device with an input device indicator that is visible on the video display and reflects movement of the input device, and a computer program for displaying a window with contents on the video display, the window having a predefined area for triggering scrolling the contents of the window, a method for displaying contents of a window comprising the steps of:

initiating a selection of contents of the window with the input device in accordance with user input;

determining a current location of the input device indicator;

determining whether the current location of the input device indicator is within the predefined area of the window;

when the current location of the input device indicator is within the predefined area of the window,

determining a number of times that scrolling of the contents of the window has been initiated during the selection;

designating a scroll speed that is inversely proportional to the number of times that scrolling of the contents of the window has been initiated;

scrolling the contents of the window at the designated scroll speed; and

completing the selection of the contents of the window.

15. In a computer system having a video display, an input device and a computer program for displaying a window on the video display and for displaying contents of the window, the contents having portions, the window divisible into lines of display, a method for displaying contents of a window comprising the steps of:

receiving at least one request from the input device to display a sequential portion of the contents in response to user input;

determining a count of the number of requests received;

determining a time difference between each request received;

when the count is above a predefined threshold and the time difference is below a predefined time difference,

displaying the portion of the contents requested by a last request received; and

when the count is not above the predefined threshold and when the time difference is not below the predefined value,

displaying the portion of the contents requested by each received request with a granularity of a line of display.

16. The method of claim 15 wherein the computer program is an operating system, wherein the contents of the window are screen objects, wherein the step of receiving at least one request includes the step of receiving at least one request from the input device to display a sequential portion of the screen objects in response to user input, and wherein the step of displaying the portion of the contents requested by each received request includes the step of displaying the portion of the screen objects requested by each received request with a minimum granularity of a line of display by the operating system.

17. The method of claim 15 wherein the computer program is a word processor, wherein the contents of the window is text, wherein the step of receiving at least one request includes the step of receiving at least one request from the input device to display a sequential portion of the text in response to user input, and wherein the step of displaying the portion of the contents requested by each received request includes the step of displaying the portion of the text requested by each received request with a minimum granularity of a line of display by the word processor.

18. The method of claim 15 wherein the computer program is a database, wherein the contents of the window are database records, wherein the step of receiving at least one request includes the step of receiving at least one request from the input device to display a sequential portion of the database records in response to user input, and wherein the step of displaying the portion of the contents requested by each received request includes the step of displaying the portion of the database records requested by each received request with a minimum granularity of a line of display by the database.

19. The method of claim 15 wherein the computer program is a spreadsheet program, wherein the contents of the window are spreadsheet cells, wherein the step of receiving at least one request includes the step of receiving at least one request from the input device to display a sequential portion of the spreadsheet cells in response to user input, and wherein the step of displaying the portion of the contents requested by each received request includes the step of displaying the portion of the spreadsheet cells requested by each received request with a minimum granularity of a line of display by the spreadsheet program.

20. A device for displaying contents of a window, the device comprising:

a selection component for selecting contents of a window in response to user input;

a calculation component for calculating an acceleration of the selection component when the selection component is selecting contents of the window and the selection component is located within a predefined area of the window;

a speed component for determining a speed for scrolling the contents of the window, said speed being non-zero and proportional to the calculated acceleration of the selection component; and

a scrolling component for scrolling the contents of the window at the determined speed.

21. A device for displaying contents of a window, the device comprising:

a receiver component for receiving requests for initiating scrolling of the contents of a window in response to user input;

a count component for determining a number of the requests for initiating the scrolling of the contents of the window that are received by the receiver component;

a speed component for determining a speed for scrolling the contents of the window that is inversely proportional to the number of the requests for initiating the scrolling of the contents of the window that are received by the receiver component; and

a scrolling component for scrolling the contents of the window at the determined speed.

22. A device for displaying contents of a window, the device comprising:

a selection component for selecting contents of a window in response to user input;

a receiver component for receiving requests to initiate scrolling of the contents of the window;

a count component for determining a number of the requests that are received by the receiver component while the selection component is selecting the contents of the window;

a speed component for determining a speed for scrolling the contents of the window that is inversely proportional to the number of requests that are received by the receiver component; and

a scrolling component for scrolling the contents of the window at the determined speed.

23. A device for scrolling contents of a window, the device comprising:

a receiver component for receiving navigation key input from a user, said navigation key input having a magnitude;

a threshold component for determining when the magnitude of the navigation key input is greater than a predefined threshold and for determining when the navigation key input has been received by the receiver component within a predefined time;

an animation scrolling component for scrolling the contents of the window with a minimum granularity of a line when the threshold component determines that the magnitude of the navigation key input is not greater than the predefined threshold and when the threshold component determines that the navigation key input has not been received by the receiver component within a predefined time; and

a jump component for displaying the contents of the window corresponding to a last of the navigation key input when the threshold component determines that the magnitude of the navigation key input is greater than the predefined threshold and the threshold component determines that the navigation key input has been received by the receiver component within a predefined time.

24. In a computer system having a video display, an input device with an input device indicator that is visible on the video display and reflects movement of the input device, and a computer program for displaying a window with contents on the video display, the input device indicator having an associated acceleration, the window having a predefined area for triggering scrolling the contents of the window, a method for displaying the contents of a window comprising the steps of:

initiating a first selection of the contents of the window;

while performing the first selection,

determining a first current location of the input device indicator on the video display;

determining a first acceleration of the input device indicator when the first current location of the input device indicator is within the predefined area;

designating a first speed for scrolling the contents of the window such that the first speed is non-zero and proportional to the first acceleration of the input device indicator;

scrolling the contents of the window at the first speed;

initiating a second selection of the contents of the window; and

while performing the second selection,

determining a second current location of the input device indicator on the video display;

determining a second acceleration of the input device indicator when the second current location of the input device indicator is within the predefined area;

designating a second speed for scrolling the contents of the window such that the second speed is non-zero and proportional to the second acceleration of the input device indicator; and

scrolling the contents of the window at the second speed.

25. In a computer system having a video display, an input device with an input device indicator that is visible on the video display and reflects movement of the input device, and a computer program for displaying a window with contents on the video display, the input device indicator having an associated acceleration, the window having a predefined area for triggering scrolling the contents of a window, a method for displaying the contents of a window comprising the steps of:

initiating a selection of the contents of the window;

while performing the selection,

determining a first current location of the input device indicator on the video display;

determining a first acceleration of the input device indicator when the first current location of the input device indicator is within the predefined area;

designating a first speed for scrolling the contents of the window such that the first speed is non-zero and proportional to the first acceleration of the input device indicator;

scrolling the contents of the window at the first speed;

determining a second current location of the input device indicator on the video display;

determining a second acceleration of the input device indicator when the second current location of the input device indicator is within the predefined area;

designating a second speed for scrolling the contents of the window such that the second speed is non-zero and proportional to the second acceleration of the input device indicator; and

scrolling the contents of the window at the second speed.

26. In a computer system having a video display, an input device with an input device indicator that is visible on the video display and reflects movement of the input device, and a computer program for displaying a window with contents on the video display, the window having a predefined area, a method for displaying the contents of a window comprising the steps of:

selecting contents of the window with the input device in response to user input;

determining a current location of the input device indicator on the video display;

determining whether the current location of the input device indicator is within the predefined area; and

when the current location of the input device indicator is within the predefined area,

determining an acceleration of the input device indicator, wherein the input device indicator has an associated acceleration;

designating a speed for the scrolling of the contents of the window such that the designated speed is non-zero and proportional to the acceleration of the input device indicator; and

scrolling the contents of the window at the designated speed.
 Description Submit all comments and votes
 


TECHNICAL FIELD OF THE INVENTION

The present invention relates generally to data processing systems and, more particularly, to scrolling contents of a window in data processing systems.

BACKGROUND OF THE INVENTION

In the field of computer technology, a window is used for providing a user with access to information. In addition to providing access to the information, the window has a display area that displays the information. When a window maintains more information than it can display at one time, the window displays only a subset of the information. In this event, scrolling the window is necessary before a user can view the information maintained by the window that is not within the subset currently being displayed. Thus, scrolling refers to changing the subset of information displayed by a window. Scrolling is typically triggered in response to user input.

One type of scrolling in conventional systems is known as "scrolling beyond a screen boundary." This type of scrolling occurs when a user makes a selection of the information displayed by a window, and during the selection, the user moves the mouse cursor to an edge of the display area of the window. When the mouse cursor is at the edge of the display area of the window, conventional systems automatically scroll the window at a fixed speed to display more information to the user that the user can then select.

One problem that occurs when scrolling beyond a screen boundary is that the scrolling of conventional systems tends to be at a very high speed. Thus, when a user performs scrolling beyond a screen boundary wishing to select some information not currently being displayed, the user may see the desired information scroll by and out of view before the user can stop the scrolling. In this event, the user must cause the window to scroll in the reverse direction. Often times, users must scroll back and forth a number of times before being able to select the desired information. This leads to user frustration as well as a loss of user productivity.

Another type of scrolling occurs when a user hits either successive Page Down or Page Up keys. Hitting either the Page Down or the Page Up key on a keyboard, scrolls the window one window worth of information (e.g., a page) at a time in the respective direction. By scrolling one page at a time, however, the user loses their reference point in relation to the information being displayed since a completely new page of information is presented to the user. One way to solve this problem is to scroll the information one line at a time. This allows the user to see their reference point scroll by so that they can better gauge their location within the information. However, scrolling the information one line at a time uses significant processing time. Therefore, for example, when a user wants to quickly display information that is three pages away, the user must wait for the computer system to draw one line of information at a time until reaching the third page. This is time-consuming and tends to frustrate users that want to display specific information quickly.

Scrolling a window is well known. Typically, a computer program is responsible for maintaining the window and for displaying information in the window. The computer program receives the information to be displayed from a data store, such as a file. The computer program usually scrolls the window in response to a command to redraw the window. Such a command includes the level of granularity for displaying the information and the direction of scrolling. After receiving the command, the computer program will access the data store and determine which information should be displayed. For example, if the command indicated to scroll the next window-worth of information, the computer program will access the next window-worth of information from the file. After accessing the information, the computer program displays the information in the window at the level of granularity specified by the command and in the direction specified by the command.

SUMMARY OF THE INVENTION

In accordance with a first aspect of the present invention, a method for displaying contents of a window is executed in a data processing system having an input device with an input device indicator, a video display, and a computer program for displaying a window on the window display. In accordance with this method of the first aspect of the present invention, the computer program determines a location of the input device indicator on the video display, determines the acceleration of the input device indicator when the location of the input device indicator is within a predefined area of the window, designates a speed for scrolling the contents the window such that the designated speed is proportional to the acceleration and scrolls the contents of the window with the designated speed.

In accordance with a second aspect of the present invention, a method for displaying contents of a window is executed in a computer system having a video display and a computer program for displaying a window on the video display and for displaying contents within the window. In accordance with this method of the second aspect of the present invention, the computer program receives at least one request in accordance with user input to scroll the contents of the window, determines a number of requests received for scrolling the contents of the window, designates a scroll speed that is inversely proportional to the number of the requests received and scrolls the contents of the window with the designated scroll speed.

In accordance with a third aspect of the present invention, a method for displaying contents of a window is executed in a computer system having an input device and a computer program for displaying a window on a video display and for displaying contents of the window. The window has a predefined area. In accordance with this method of the third aspect of the present invention, the computer program receives at least one request from the input device to display a sequential portion of the contents in response to user input, determines a count of the number of requests received, and determines a time difference between each request received. When the count is above a predefined threshold and the time difference is below a predefined time difference, the computer program displays the contents requested by a last request received. When the count is not above the predefined threshold or when the time is not below the predefined value, the computer program displays the contents requested by each received request with a minimum granularity of a line.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a data processing system that is suitable for practicing a preferred embodiment of the present invention.

FIG. 2 depicts a window that utilizes the preferred embodiment of the present invention.

FIG. 3 is a high-level flowchart of a first aspect of the present invention.

FIGS. 4A and 4B depict a more detailed flowchart of the steps performed by the first aspect of the present invention.

FIG. 5 is a high-level flowchart of a second aspect of the present invention.

FIG. 6 depicts a more detailed flowchart of the steps performed by the second aspect d the present invention.

FIG. 7 depicts a high-level flowchart of a third aspect of the present invention.

FIG. 8 depicts a more detailed flowchart of the steps performed by the third aspect of the present invention.

DETAILED DESCRIPTION OF THE INVENTION

The preferred embodiment of the present invention provides an improved method and system for scrolling contents of a window. There are three aspects of the preferred embodiment of the present invention which will be described herein. The first two of these aspects provide for an improvement in scrolling beyond a screen boundary. The third aspect provides for an improvement for scrolling in response to navigation key input.

The first aspect of the present invention provides variable speed scrolling when performing scrolling beyond a screen boundary. The first aspect sets the variable speed proportional to the acceleration of the mouse cursor. When invoking scrolling beyond a screen boundary, users tend to move the mouse cursor with a large magnitude of acceleration when the users wish for the window to scroll rapidly and users tend to move the mouse cursor with a magnitude of acceleration that is small when the users wish for the window to scroll slowly. Therefore, by determining a variable speed for scrolling related to the intentions of the user, the first aspect reduces user frustration and increases productivity.

The second aspect of the present invention sets a variable scroll speed while performing scrolling beyond a screen boundary based on the number of times that scrolling was initiated during the selection. The second aspect of the present invention is responsive to the intentions of the user since users tend to disengage scrolling or scroll in a reverse direction when they wish for the scrolling to slow. Thus, the second aspect sets the scrolling speed inversely proportional to the number of times that scrolling has been initiated or the direction of scrolling has been reversed. Therefore, the more a user reverses direction or disengages scrolling, the slower the window scrolls. Since the second aspect sets a scroll speed based on the intentions of the user, the second aspect reduces user frustration and increases productivity. Although the first and second aspect will be described relative to use with a mouse input device, one skilled in the art will appreciate that the present invention can be used with other input devices such as a pen input device.

The third aspect of the present invention adjusts the type of scrolling that occurs when a user uses navigation keys. The term "navigation keys" refers to keys on a keyboard input device or logical keys (or buttons) on a computer display that scroll the contents of a window. Examples of such navigation keys on a keyboard input device include the Page Up and the Page Down keys. In addition to keys on a keyboard input device, the term "navigation keys" also refers to logical keys displayed on a computer display that can be invoked by an input device such as a mouse input device. For example, some application programs display a "page-down" or a "page-up" button on a window that displays information. Such buttons are also examples of navigation keys. Typically, the most useful type of scrolling to a user is when scrolling occurs one line at a time. That is, scrolling occurs with a minimum granularity of a line. This type of scrolling is also known as "animated" scrolling. This animated scrolling allows a user to see a reference point pass by on the screen so that the user can keep their orientation with respect to the information being displayed. However, scrolling information one line at a time utilizes a significant amount of processing time and is unsuitable for users that want to go quickly to desired information. Therefore, the third aspect provides two types of scrolling ("scrolling modes"): animated scrolling and jump to scrolling. "Jump to" scrolling refers to immediately displaying the information corresponding to the last navigation key received without displaying the intervening information.

The third aspect performs animated scrolling when the user depresses a navigation key a number of times that is less than a predefined threshold or the time between depression of each navigation key ("time differential") is above a predefined value. However, if the user depresses a navigation key a number of times that is more than the predefined threshold with the time differential being less than the predefined value, the third aspect will perform jump to scrolling. For example, if a user hits the Page Down key four times successively, which is a number of times that is greater than the predefined threshold, and the time differential between each successive depression of the Page Down key is below the predefined value, the third aspect will not scroll the window in the usual sense of the term. Instead, the third aspect will display the information that would be displayed on the fourth Page Down. However, if there were a significant delay between each of the Page Down key depressions, the third aspect will scroll through the four pages one line at a time. The third aspect is responsive to the intentions of the user since a user will tend to hit a navigation key rapidly if the user wishes to go directly to a specific page. On the other hand, the user will depress the navigation keys more slowly when the user is unsure of which page of information to display and therefore, wishes to scan the information being scrolled. Therefore, since the third aspect switches between animated scrolling and jump to scrolling based on the intentions of the user, the third aspect reduces user frustration and increases productivity by allowing a user to go directly to desired information.

FIG. 1 is a block diagram of a data processing system 102 that is suitable for practicing the preferred embodiment of the present invention. The data processing system 102 includes at least one central processing unit (CPU) 108. The CPU 108 is connected to a number of peripheral devices, including a mouse 110, a keyboard 104, and a video display 112. The mouse 110 has a mouse button 111 and the keyboard 104 has navigation keys 105. The CPU 108 is also connected to a memory 106 and a secondary storage device 114, such as a hard disk drive. The memory 108 holds a copy of an operating system 116, such as the "MICROSOFT WINDOWS" operating system sold by Microsoft Corporation of Redmond, Wash., and a copy of an application program 118 such as the Microsoft Word word processing program sold by Microsoft Corporation of Redmond, Wash. The implementation of the preferred embodiment of the present invention will be described below with reference to use of scrolling within the application program 116. Nevertheless, it should be appreciated that the scrolling may alternatively be implemented in the operating system 116. In addition, the scrolling may be implemented in other application programs including, but not limited to, document processing programs, spreadsheet programs, electronic mail programs, database programs, or any other application program where information can be displayed to a user.

In general, each application program having a user interface has an associated window procedure for each window that the application program displays. For each application program having a user interface, the operating system maintains a message queue. When an event occurs, the event is translated into a message that is put into the message queue for the application program. Such an event includes keystrokes, timer events, manipulation of the mouse cursor or manipulation of the mouse button. For example, when the mouse button is depressed, a "MOUSE.sub.-- DOWN" event is generated by the operating system and is sent to the message queue of the application program. The application program retrieves and delivers messages in the message queue to the proper window procedure for processing; that is, the window procedure for the window for which the event is intended. The window procedure, in turn, has a number of functions that the window procedure invokes depending on the specific event that has occurred. For example, the window procedure for the Microsoft Word word processor invokes a specific function when receiving a MOUSE.sub.-- DOWN event and the mouse cursor is within the text portion of a window. Thus, this function is responsible for handling a MOUSE.sub.-- DOWN event when the mouse indicator is within the text portion