Patent ID: 8407624

Claim:
A computer implemented method for moving a pointer in a graphical user interface environment, the computer implemented method comprising: a computer receiving, from a device driver, an input comprising an initial delta value determined by the device driver; the computer receiving input comprising a value for acceleration selected by a user for an input device (hereafter called “A”), and an initial threshold value selected by the user for the input device (hereafter called “T”); the computer locating the initial delta value in a data structure; selecting, from the data structure, a new delta value associated with the initial delta value, wherein the new delta value is a function of the initial delta value, wherein the new delta value is a fixed point arithmetic value calculated using multiple acceleration and threshold values based on a user's threshold setting and a user's acceleration setting; wherein new delta values are sub-pixel values and wherein the multiple acceleration and threshold values based on the user's threshold setting and the user's acceleration setting further comprise three acceleration values that are calculated to gradually increase a mouse movement using sub-pixel movements based on the user's threshold setting and the user's acceleration setting using fixed point arithmetic, and wherein a fourth value is used to calculate the new delta values using an acceleration value that is half a user's acceleration value (hereafter called “A1”), and wherein a fifth value is a threshold value depending on A and no smaller than 30 and no larger than 120 (hereafter called “T2”), the function consisting of: (a) a first linear region for initial delta values smaller than 1, with a slope of A1 but not larger than 0.25*1024; (b) a second linear region for initial delta values larger than 1 but smaller than 3, with a slope of A1 but not larger than 0.40*1024; (c) a third linear region for initial delta values larger than 3 but smaller than 5, with a slope of A1 but not larger than 0.60*1024; (d) a fourth linear region for initial delta values larger than 5 but smaller than T, with a slope of A1 but not larger than 1.00*1024; (e) a fifth concave curvilinear region for initial delta values larger than T but smaller than T2, with a shape dependent on both A and T; (f) a sixth linear region for initial delta values larger than T2, with a constant slope of 8.0*1024; the computer calculating a new position of a pointer in the graphical user interface environment based on the new delta value; and the computer sending the new position of the pointer to the graphical user interface environment for rendering.