Patent ID: 8411035

Claim:
A cursor positioning sub-system for a communications device, the communications device including a memory that stores an operating system and a plurality of applications, the cursor positioning sub-system selecting a cursor navigation mode from a plurality of cursor navigation modes, the cursor positioning sub-system comprising: a cursor positioning device that generates a device pulse when actuated, the device pulse corresponding to one of a plurality of directions for navigating a cursor on a display; a movement detector that is communicatively coupled to the cursor positioning device and the operating system, the movement detector including a counter that counts the device pulse and increments a count value for the corresponding one of the plurality of directions, the movement detector being configured to: receive the device pulse; receive a signal from the operating system, the signal identifying an active application selected from the plurality of applications; set a minimum count value threshold for the plurality of directions based on the identified active application; generate a direction pulse when the count value threshold is reached for one of the plurality of directions, the direction pulse being associated with the corresponding direction; reset the counter for the corresponding direction that reaches the count value threshold; and reset the counter for the corresponding plurality of directions if the movement detector does not receive the device pulse associated with the plurality of directions within a predefined time period; a velocity detector that is communicatively coupled to the movement detector, the velocity detector defining the plurality of cursor navigation modes based on at least one of the active application and a time period between corresponding direction pulses, the velocity detector configured to: receive the direction pulse; determine the direction associated with the direction pulse; determine the time period between receiving the direction pulse and a previous direction pulse that corresponds to a same direction; compare the determined time period with a plurality of predetermined time periods associated with the plurality of cursor navigation modes; select one of the plurality of cursor navigation modes based on at least one of the determined time period and the active application; and generate a cursor movement event that corresponds to the selected cursor navigation mode, the cursor movement event being a multiple of the determined time period between corresponding direction pulses.