This disclosure relates to computing devices, and more particularly, to input techniques for touch sensitive devices.
Touch sensitive computing devices such as tablets, eReaders, mobile phones, smart phones, personal digital assistants (PDAs), and other such devices are commonly used for displaying consumable content. The content may be, for example, an eBook, an online article or website, images, documents, a movie or video, or a map, just to name a few types. Such devices are also useful for displaying a user interface that allows a user to interact with one or more applications or services running on the device. In some instances, the content is displayed and interacted with using a touch screen, while in other instances, the touch sensitive surface (such as a track pad) and display device (such as a non-touch sensitive monitor) may be separate. The user interface for these touch sensitive computing devices typically include a virtual keyboard (also referred to as a soft keyboard) for entering text and other characters. The virtual keyboard is typically displayed when a user is interacting with a text entry box or other various text input fields.
a-b illustrate an example touch sensitive computing device having a keyboard cursor swipe mode configured in accordance with an embodiment of the present invention.
c-d illustrate example configuration screen shots of the user interface of the touch sensitive computing device shown in
a illustrates a block diagram of a touch sensitive computing device configured in accordance with an embodiment of the present invention.
b illustrates a block diagram of a communication system including the touch sensitive computing device of
a-i illustrate a keyboard cursor swipe mode on a touch sensitive computing device, in accordance with one or more embodiments of the present invention.
Techniques are disclosed for providing a virtual keyboard cursor swipe gesture mode in touch sensitive computing devices. The keyboard cursor swipe mode is configured to translate a swipe gesture (performed over a virtual keyboard of the device) into cursor movement in the direction of the swipe gesture. In some instances, characteristics such as the swipe length, swipe speed, and/or number of contact points used when swiping may affect when the mode is invoked and/or the distance and/or speed of the cursor movement. The keyboard cursor swipe mode may also be configured with a highlighting feature that highlights text while the cursor is moved in combination with a highlight activation action, such as holding the shift key. In some cases, the keyboard cursor swipe mode may allow for continual cursor movement as long as the swipe gesture is held. Numerous other configurations and variations will be apparent in light of this disclosure.
General Overview
As previously explained, touch sensitive computing devices such as tablets, eReaders, and smart phones are commonly used for displaying user interfaces and consumable content. As was also explained, user interfaces for touch sensitive devices typically include a virtual keyboard for entering text and other characters into text boxes or other various text input fields. A cursor is typically used to indicate the position that will receive or otherwise respond to the key-based input via the virtual keyboard (also referred to as the insertion point). The cursor is typically displayed as a flashing or steady underscore, solid rectangle, or vertical line. When the virtual keyboard is displayed, a user may desire to move a cursor around (e.g., when a text input field is active) or provide other directional input, such as to move from cell to cell within a spreadsheet application. While most touch sensitive computing devices provide methods for moving a cursor, the methods typically require a user to tap to the desired cursor location or use unidirectional buttons to move the cursor. However, those and other known methods for cursor movement have drawbacks.
Thus, and in accordance with an embodiment of the present invention, techniques are disclosed for cursor movement using swipe gestures over the virtual keyboard of a touch sensitive computing device, referred to collectively herein as a keyboard cursor swipe mode. Since cursor movement is typically desired when entering or editing text in a text input field, such as a text entry box, the keyboard cursor swipe mode provides an intuitive mechanism for moving the cursor using the virtual keyboard. Further, the techniques disclosed herein provide additional functionality to enhance the directional input experience, particularly when dealing with touch sensitive devices that use a touch screen, such as smart phones, eReaders, and tablets. Invocation of the keyboard cursor swipe mode may be achieved in a number of ways. For instance, a multi-touch-point swipe gesture started from the virtual keyboard can be used to invoke the mode immediately, as will be apparent in light of the present disclosure. In another embodiment, a single-touch-point press-and-hold on the virtual keyboard for a given duration (e.g., 1-2 seconds, or some other suitable duration) can cause invocation of the mode.
Generally, the direction of the swipe gesture may determine the direction of the cursor movement when using one or more embodiments of the keyboard cursor swipe mode. Other various characteristics of the keyboard swipe gesture may also affect the cursor movement. For example, in some embodiments, the keyboard cursor swipe mode may be configured such that the swipe length, swipe speed, and/or number of contact points used when swiping affects the cursor movement performed. Although the swipe gestures described herein are discussed in the context of causing cursor movement, they may also relate more generally to directional input, as will be apparent in light of this disclosure. In addition, in some embodiments, the swipe gestures made using the keyboard cursor swipe mode may be interpreted as directional input to cause the cursor movement described herein.
In some embodiments, the keyboard cursor swipe mode may be configured with a highlighting feature that is triggered using a highlight activation action. The highlight activation action may include holding a stationary contact point (e.g., using the user's non-swiping hand), pre-selecting the shift key, or holding the shift key. In some instances, highlighting may be triggered by using a certain amount of contact points when performing a swipe gesture, such as three fingers, for example. The keyboard cursor swipe mode may be configured in some embodiments to allow continual (or repeated) cursor movement by holding a swipe gesture. In some such embodiments, swipes may be made relative to an anchor point (e.g., the starting contact point(s)) to allow a user to swipe in a new direction relative to the anchor point while maintaining contact to move the cursor in a new direction, as will be apparent in light of this disclosure. In some instances, the length, speed, and/or number of contact points used when making the swipes may affect the speed and/or acceleration of the continual cursor movement. For example, an embodiment may be configured such that extending a swipe gesture farther from the anchor point accelerates the continual cursor movement in the direction of the swipe.
In some embodiments, the functions performed when using a keyboard cursor swipe mode described herein may be configured at a global level (i.e., based on the UI settings of the electronic device) and/or at an application level (i.e., based on the specific application being displayed). To this end, the keyboard cursor swipe mode may be user-configurable in some cases, or hard-coded in other cases. Further, the keyboard cursor swipe mode as described herein may be included with a virtual keyboard or be a separate program/service configured to interface with a pre-existing virtual keyboard to incorporate the functionality of the keyboard cursor swipe mode as described herein (regardless of whether the virtual keyboard is UI based or application specific). For ease of reference, user input is sometimes referred to as contact or user contact; however, direct and/or proximate contact (e.g., hovering within a few centimeters of the touch sensitive surface) may be used to make the keyboard swipe gestures described herein depending on the specific touch sensitive device being used. In other words, in some embodiments, a user may be able to use the keyboard cursor swipe mode without physically touching the touch sensitive device.
Device and Configuration Examples
a-b illustrate an example touch sensitive computing device having a keyboard cursor swipe mode configured in accordance with an embodiment of the present invention. The device could be, for example, a tablet such as the NOOK® Tablet by Barnes & Noble. In a more general sense, the device may be any electronic device having a touch sensitive user interface and capability for displaying content to a user, such as a mobile phone or mobile computing device such as an eReader, a tablet or laptop, a desktop computing system, a television, a smart display screen, or any other device having a touch screen display or a non-touch display screen that can be used in conjunction with a touch sensitive surface. As will be appreciated in light of this disclosure, the claimed invention is not intended to be limited to any particular kind or type of electronic device.
As can be seen with this example configuration, the device comprises a housing that includes a number of hardware features such as a power button and a press-button (sometimes called a home button herein). A touch screen based user interface (UI) is also provided, which in this example embodiment includes a quick navigation menu having six main categories to choose from (Home, Library, Shop, Search, Light, and Settings) and a status bar that includes a number of icons (a night-light icon, a wireless network icon, and a book icon), a battery indicator, and a clock. Other embodiments may have fewer or additional such UI touch screen controls and features, or different UI touch screen controls and features altogether, depending on the target application of the device. Any such general UI controls and features can be implemented using any suitable conventional or custom technology, as will be appreciated.
The power button can be used to turn the device on and off, and may be used in conjunction with a touch-based UI control feature that allows the user to confirm a given power transition action request (e.g., such as a slide bar or tap point graphic to turn power off). In this example configuration, the home button is a physical press-button that can be used as follows: when the device is awake and in use, tapping the button will display the quick navigation menu, which is a toolbar that provides quick access to various features of the device. The home button may also be configured to hide a displayed virtual keyboard. Numerous other configurations and variations will be apparent in light of this disclosure, and the claimed invention is not intended to be limited to any particular set of hardware buttons or features, or device form factor.
As can be further seen, the status bar may also include a book icon (upper left corner). In some such cases, the user can access a sub-menu that provides access to a keyboard cursor swipe mode configuration sub-menu by tapping the book icon of the status bar. For example, upon receiving an indication that the user has touched the book icon, the device can then display the keyboard cursor swipe mode configuration sub-menu shown in
As will be appreciated, the various UI control features and sub-menus displayed to the user are implemented as UI touch screen controls in this example embodiment. Such UI touch screen controls can be programmed or otherwise configured using any number of conventional or custom technologies. In general, the touch screen translates the user touch in a given location into an electrical signal which is then received and processed by the underlying operating system (OS) and circuitry (processor, etc.). Additional example details of the underlying OS and circuitry in accordance with some embodiments will be discussed in turn with reference to
As previously explained, and with further reference to
In the example case shown in
Continuing with the other Cursor Movement Options, the Horizontal/Vertical cursor movement would allow the cursor to move left and right in response to leftward rightward horizontal swipes, respectively, over the virtual keyboard and also move the cursor up and down in response to upward and downward vertical swipes, respectively, over the virtual keyboard. In other words, the Horizontal/Vertical option allows cursor movement in four directions, i.e., left, right, up, and down. The swipe gesture recognition range for each direction may be varied and/or configurable, as previously described. The Multi-Directional option allows cursor movement in any direction (including diagonal movement) in response to a swipe over the virtual keyboard in that direction. As shown, the Multi-Directional option is enabled/selected.
Continuing with the example case shown in
The next settings option in the example case shown in
In other embodiments, the user may specify a number of applications in which the keyboard cursor swipe mode can be invoked. Such a configuration feature may be helpful, for instance, in a tablet or laptop or other multifunction computing device that can execute different applications (as opposed to a device that is more or less dedicated to a particular application). In one example case, for instance, the available applications could be provided along with a corresponding check box. Example diverse applications include an eBook application, a document editing application, a text or chat messaging application, a browser application, a file manager application, a word processor application, a document viewer application, or any application including text based search, to name a few. In other embodiments, the keyboard cursor swipe mode can be invoked whenever the virtual keyboard application is running or is displayed on the screen, regardless of the application being used. Any number of applications or device functions may benefit from a keyboard cursor swipe mode as provided herein, whether user-configurable or not, and the claimed invention is not intended to be limited to any particular application or set of applications.
As can be further seen, a back button arrow UI control feature may be provisioned on the touch screen for any of the menus provided, so that the user can go back to the previous menu, if so desired. Note that configuration settings provided by the user can be saved automatically (e.g., user input is saved as selections are made or otherwise provided). Alternatively, a save button or other such UI feature can be provisioned, which the user can engage as desired. Again, while
Architecture
a illustrates a block diagram of a touch sensitive computing device configured in accordance with an embodiment of the present invention. As can be seen, this example device includes a processor, memory (e.g., RAM and/or ROM for processor workspace and storage), additional storage/memory (e.g., for content), a communications module, a touch screen, and an audio module. A communications bus and interconnect is also provided to allow inter-device communication. Other typical componentry and functionality not reflected in the block diagram will be apparent (e.g., battery, co-processor, etc). Further note that although a touch screen display is provided, other embodiments may include a non-touch screen and a touch sensitive surface such as a track pad, or a touch sensitive housing configured with one or more acoustic sensors, etc. In any such cases, the touch sensitive surface is generally capable of translating a user's physical contact with the surface (e.g., touching the surface with a finger or an implement, such as a stylus) into an electronic signal that can be manipulated or otherwise used to trigger a specific user interface action, such as those provided herein. The principles provided herein equally apply to any such touch sensitive devices. For ease of description, examples are provided with touch screen technology.
The touch sensitive surface (touch sensitive display in this example) can be any device that is configured with user input detecting technologies, whether capacitive, resistive, acoustic, active or passive stylus, and/or other input detecting technology. The screen display can be layered above input sensors, such as a capacitive sensor grid for passive touch-based input (e.g., with a finger or passive stylus in the case of a so-called in-plane switching (IPS) panel), or an electro-magnetic resonance (EMR) sensor grid (e.g., for sensing a resonant circuit of the stylus). In some embodiments, the touch screen display can be configured with a purely capacitive sensor, while in other embodiments the touch screen display may be configured to provide a hybrid mode that allows for both capacitive input and active stylus input. In still other embodiments, the touch screen display may be configured with only an active stylus sensor. In any such embodiments, a touch screen controller may be configured to selectively scan the touch screen display and/or selectively report contacts detected directly on or otherwise sufficiently proximate to (e.g., within a few centimeters) the touch screen display. Numerous touch screen display configurations can be implemented using any number of known or proprietary screen based input detecting technology.
Continuing with the example embodiment shown in
The processor can be any suitable processor (e.g., 800 MHz Texas Instruments® OMAP3621 applications processor), and may include one or more co-processors or controllers to assist in device control. In this example case, the processor receives input from the user, including input from or otherwise derived from the power button, home button, and touch sensitive surface. The processor can also have a direct connection to a battery so that it can perform base level tasks even during sleep or low power modes. The memory (e.g., for processor workspace and executable file storage) can be any suitable type of memory and size (e.g., 256 or 512 Mbytes SDRAM), and in other embodiments may be implemented with non-volatile memory or a combination of non-volatile and volatile memory technologies. The storage (e.g., for storing consumable content and user files) can also be implemented with any suitable memory and size (e.g., 2 GBytes of flash memory).
The display can be implemented, for example, with a 6-inch E-ink Pearl 800×600 pixel screen with Neonode® zForce® touch screen, or any other suitable display and touch screen interface technology. The communications module can be, for instance, any suitable 802.11 b/g/n WLAN chip or chip set, which allows for connection to a local network so that content can be downloaded to the device from a remote location (e.g., content provider, etc, depending on the application of the display device). In some specific example embodiments, the device housing that contains all the various componentry measures about 6.5″ high by about 5″ wide by about 0.5″ thick, and weighs about 6.9 ounces. Any number of suitable form factors can be used, depending on the target application (e.g., laptop, desktop, mobile phone, etc.). The device may be smaller, for example, for smart phone and tablet applications and larger for smart computer monitor and laptop applications.
The operating system (OS) module can be implemented with any suitable OS, but in some example embodiments is implemented with Google Android OS or Linux OS or Microsoft OS or Apple OS. As will be appreciated in light of this disclosure, the techniques provided herein can be implemented on any such platforms, or other platforms including a virtual keyboard. The power management (Power) module can be configured as typically done, such as to automatically transition the device to a low power consumption or sleep mode after a period of non-use. A wake-up from that sleep mode can be achieved, for example, by a physical button press and/or a touch screen swipe or other action. The user interface (UI) module can be, for example, based on touch screen technology, and the various example screen shots and example use-cases shown in
Client-Server System
b illustrates a block diagram of a communication system including the touch sensitive computing device of
Keyboard Swipe Gesture Examples
a-i illustrate a keyboard cursor swipe mode on a touch sensitive computing device, in accordance with one or more embodiments of the present invention. As shown in
a shows a text input field in the upper part of the content portion and a virtual keyboard in the lower part, as may be displayed, for example, in a word processing or messaging application. The text input field may be any field or box that allows the entry of text and/or other characters via a virtual keyboard, for example. A cursor is typically displayed in the text input field when the field is active (such as is the case in this example screen shot) to indicate the position in the field that will receive or otherwise respond to input from the virtual keyboard (or other input mechanisms). In some instances, the virtual keyboard will always be displayed, while in other instances, the virtual keyboard will appear or only be displayed when a text input field becomes active, such as when a user selects the text input field (e.g., with an appropriately positioned tap).
Virtual keyboards capable of using a keyboard cursor swipe mode as disclosed herein may have any layout or configuration, such as the QWERTY keyboard layout as shown in
a shows the cursor in the initial cursor position, i.e., the position the cursor is in before performing any of the keyboard cursor swipe gesture examples illustrated in
b shows an example horizontal swipe gesture for cursor movement, in accordance with an embodiment of the present invention. More specifically, a one contact point leftward swipe gesture is being performed to cause the cursor to move left one space from the initial position shown in
As previously described, the cursor movement can be determined by at least the direction of the swipe gesture. The swipe gesture is made by initiating contact (at one or more starting contact points) and maintaining the contact while swiping in a certain direction to cause the desired cursor movement. Since one contact point is being used in this example case, the keyboard cursor swipe mode may be configured such that the swipe gesture may have to, for example, be initiated with a press-and-hold (e.g., for 1-2 seconds, or some other suitable duration) and/or be made across multiple keys to cause cursor movement, so as to be distinguished from a desire to enter a letter/character. In some instances, swipe gestures may be required to be made across three or more keys to cause cursor movement when using one contact point to avoid undesired cursor movement. In other instances, two or more contact points can be used to immediately differentiate a key press or tap (e.g., for letter/character input) from an invocation of the keyboard cursor swipe mode (to cause cursor movement).
As previously described, the length, speed, and/or number of contact points of the swipe gestures may affect the cursor movement. For example, the leftward swipe gesture in
e shows an example vertical swipe gesture for cursor movement. More specifically, a one contact point upward swipe gesture is being performed to cause the cursor to move up one line from the initial position shown in
f shows an example diagonal swipe gesture for cursor movement. More specifically, a one contact upward-leftward diagonal swipe gesture is being performed to cause the cursor to move diagonally up and left from the initial position shown in
g shows an example highlight action and swipe gesture for cursor movement plus highlighting, in accordance with an embodiment of the present invention. More specifically, a held stationary contact point highlight activation action (made by user's left hand) plus a one or two point contact (two shown in this example) leftward swipe gesture (made by user's right hand) is being performed to cause the cursor to move to the left while highlighting from the initial position shown in
h-i show an example swipe gesture and hold for continual cursor movement, in accordance with various embodiments. The example swipe gestures illustrated in
i illustrates holding the gesture down and swiping in a different direction to continue cursor movement in the new direction, in accordance with another embodiment of the present invention. As previously described, if the keyboard cursor swipe mode is configured with a swipe gesture and hold for continual movement feature, then it may also allow for continual movement in any direction about the anchor point (e.g., the starting contact point(s)). For example, after the continual cursor movement shown in
In some embodiments, the swipe gesture techniques provided herein for cursor movement may also be used to perform more general arrow key functions or directional input. As previously described, the swipe gestures for cursor movement described herein may be started from a virtual keyboard of the UI of a touch sensitive computing device and the UI may interpret the swipes as directional input (e.g., causing cursor movement when a text box is active). The virtual keyboard is generally displayed when there is an active input field (e.g., an active text box) allowing for input from that virtual keyboard. However, in some cases, the virtual keyboard may be displayed in other situations (i.e., it may be displayed when no input field is displayed or active), such as if the user selects to always display the virtual keyboard or continually displayed the virtual keyboard in a specific application, for example. In some such situations, the swipe gestures used for the keyboard cursor swipe mode described herein may be used for more general directional input. For example, in a spreadsheet application, the swipe gestures on the virtual keyboard described herein may be used to navigate cells within the spreadsheet document when a cell is selected but not active. In another example situation, when an object or graphic is selected (and no input fields are active), the swipe gesture techniques may be used to subsequently move that selected object/graphic. In some such example embodiments, the same swipe gestures and features for cursor movement may be used instead for general directional input (e.g., to move the selected object/graphic in this example case). Numerous different virtual keyboard cursor swipe gestures and configurations will be apparent in light of this disclosure.
Methodology
As can be seen, the method generally includes sensing a user's input by a touch sensitive surface. In general, any touch sensitive device may be used to detect contact with it by one or more fingers and/or styluses or other suitable implements. Since contact is location specific relative to the displayed content, the UI can detect whether the contact starts and continues on a displayed virtual keyboard. As soon as the user begins to drag or otherwise move the contact point(s) (i.e., starting contact point(s)), the UI code (and/or hardware) can assume a swipe gesture has been engaged and track the path of each contact point with respect to any fixed point within the touch surface until the user stops engaging the touch sensitive surface. The release point can also be captured by the UI as it may be used to execute or stop executing (e.g., in the case of holding for continual cursor movement) the action started when the user pressed on the touch sensitive surface. In a similar fashion, whether the user is performing a highlight activation action prior to or in combination with one or more swipe gestures can also be captured by the UI to perform highlighting as described herein. These main detections can be used in various ways to implement UI functionality, including a keyboard cursor swipe mode as variously described herein, as will be appreciated in light of this disclosure.
In this example case, the method includes detecting 401 user contact at the touch sensitive interface. In general, the touch monitoring is effectively continuous. The method continues with determining 402 if the starting contact point is within the bounds of a virtual keyboard. This may include an initial step of determining whether a virtual keyboard is being displayed. If a virtual keyboard is not displayed or user contact does not start on the virtual keyboard, then the method may continue with reviewing 403 the contact for some other UI request (e.g., select a file, send an email, etc.). If a virtual keyboard is displayed and the starting contact point of user contact is on the virtual keyboard, the method then determines 404 if the contact indicates the keyboard cursor swipe mode is desired.
The specific configuration of the keyboard cursor swipe mode may affect whether contact (direct or proximate) indicates if the keyboard cursor swipe mode is desired 404. For example, as previously explained, a minimum (or exact) number of contact points may be set to invoke the keyboard cursor swipe mode. Other characteristics of the swipe gesture may also contribute to the determination of whether contact indicates that a keyboard cursor swipe mode is desired, such as whether the swipe is within a recognized swipe angle range, whether the swipe spans multiple keys, and/or whether the swipe length is adequate to invoke the mode, for example. In any case, if the contact does not indicate that the keyboard cursor swipe mode is desired, then the method may continue with reviewing 403 the contact for other input requests. On the other hand, if the contact does indicate that the keyboard cursor swipe mode is desired, the method continues with invoking 405 the keyboard cursor swipe mode, or otherwise maintaining the mode if already invoked/activated.
The method continues with identifying 406 whether a highlight activation action is being used. As previously described, in some instances, the highlight activation action may be distinct from the swipe gesture for cursor movement, such as a held stationary contact point, pre-pressing/selecting the shift button, or holding the shift button. In some other instances, the characteristics of the swipe gesture may indicate that highlighting is desired, such as if the keyboard cursor swipe mode was configured to highlight when swiping with multiple contact points, such as three contact points (e.g., three fingers). In any case, if a highlight activation is being used, whether that action is external from or inherent to the swipe gesture for cursor movement, then the method may continue with highlighting 407 in combination with the cursor movement based on the swipe gesture characteristics. On the other hand, if a highlight activation action is not being used, the method continues by executing cursor movement 408 based on the swipe gesture characteristics. As previously described, example characteristics of the swipe gesture for cursor movement may include the direction of the gesture, the length of the gesture, the speed of the gesture, the number of contact points used for the gesture, and/or whether the gesture is being held. The configuration of the keyboard cursor swipe mode may also affect the cursor movement executed. For example, as previously described, the keyboard cursor swipe mode may be configured such that appropriate swipe gestures for cursor movement are translated into one of the following categories of cursor movement: horizontal only, horizontal and vertical only, or multi-directional. Recall that the mode may be configured by the user to a given extent, in some embodiments. Other embodiments, however, may be hard-coded or otherwise configured to carry out certain specific actions without allowing for user configuration, as will be further appreciated in light of this disclosure.
After the cursor movement has been performed in response to the swipe gesture(s) made on or otherwise initiated from the virtual keyboard, the method continues with a default action 409, such as exiting the keyboard cursor swipe mode or doing nothing until further user contact/input is received. Likewise, the received contact can be reviewed for some other UI request, as done at 403. The method may continue in the touch monitoring mode indefinitely or as otherwise desired, so that any contact provided by the user can be evaluated for use in the keyboard cursor swipe mode if appropriate. As previously indicated, the keyboard cursor swipe mode may be configured to be exited by, for example, the user releasing the ending contact point or pressing a release mode UI feature such as the home button or a touch screen feature. In some instances, the keyboard cursor swipe mode may be tied to the virtual keyboard such that it will only be available when a virtual keyboard is being displayed. In this instance, power and/or memory may be conserved since the keyboard cursor swipe mode will only run or otherwise be available when the virtual keyboard is displayed.
Numerous variations and embodiments will be apparent in light of this disclosure. One example embodiment of the present invention provides a device including a display for displaying content to a user, and a touch sensitive surface for allowing user input. The device also includes a user interface including a virtual keyboard wherein a swipe gesture performed on the virtual keyboard without regard to the starting contact point causes cursor movement determined by the direction of the swipe gesture. In some cases, the display is a touch screen display that includes the touch sensitive surface. In some cases, the cursor movement is based on the swipe gesture length, swipe gesture speed, number of contact points used for the swipe gesture and/or whether the swipe gesture is held. In some cases, a path and/or starting point of the swipe gesture is indicated on the display to provide visual feedback. In some cases, the swipe gesture is made using two or more fingers. In some cases, the swipe gesture is made using two or more fingers and cursor movement tracks direction of the swipe gesture. In some cases, the cursor movement in response to swipe gestures performed on the virtual keyboard is user-configurable.
Another example embodiment of the present invention provides a mobile computing device including a display having a touch screen interface and for displaying content to a user, and a user interface including a virtual keyboard and a keyboard cursor swipe mode that is configured to be invoked in response to user contact via the touch sensitive interface, the user contact including a swipe gesture starting on the virtual keyboard and causing cursor movement determined by the direction of the swipe gesture, wherein the length, speed, and/or number of contact points of the swipe gesture defines the distance and/or speed of the cursor movement. In some cases, the keyboard cursor swipe mode is configured to translate swipe gestures into only horizontal cursor movement, only horizontal and vertical cursor movement, or multi-directional cursor movement. In some cases, the keyboard cursor swipe mode is configured to cause continual cursor movement in response to held swipe gestures. In some cases, the keyboard cursor swipe mode is configured to set the start of the swipe gesture as an anchor point about which the user can swipe to cause continual cursor movement. In some such cases, the anchor point is displayed to give a visual reference for continual cursor movement. In some cases, only swipe gestures made with a minimum of two contact points invoke the keyboard cursor swipe mode. In some cases, the keyboard cursor swipe mode includes a highlighting feature that is triggered when a highlight activation action is used in combination with the swipe gesture. In some such cases, the highlight activation action includes at least one of a held stationary contact point, a pre-selected shift key, or a held shift key.
Another example embodiment of the present invention provides a computer program product including a plurality of instructions non-transiently encoded thereon to facilitate operation of an electronic device according to a process. The computer program product may include one or more computer readable mediums such as, for example, a hard drive, compact disk, memory stick, server, cache memory, register memory, random access memory, read only memory, flash memory, or any suitable non-transitory memory that is encoded with instructions that can be executed by one or more processors, or a plurality or combination of such memories. In this example embodiment, the process is configured to invoke a keyboard cursor swipe mode in a device capable of displaying content in response to user input via a touch sensitive interface of the device (wherein the user input including a swipe gesture started anywhere on a virtual keyboard of the device to indicate a desired direction of cursor movement), and move the cursor in the desired direction. In some cases, the keyboard cursor swipe mode is configured to translate swipe gestures into only horizontal cursor movement, only horizontal and vertical cursor movement, or multi-directional cursor movement. In some cases, the cursor movement is based on the swipe gesture length, swipe gesture speed, number of contact points used for the swipe gesture and/or whether the swipe gesture is held. In some cases, the keyboard cursor swipe mode includes a highlighting feature, the highlighting feature triggered when a highlight activation action is used in combination with the swipe gesture. In some cases, the swipe gesture is made using two or more fingers and cursor movement tracks the direction of the swipe gesture.
The foregoing description of the embodiments of the invention has been presented for the purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise form disclosed. Many modifications and variations are possible in light of this disclosure. It is intended that the scope of the invention be limited not by this detailed description, but rather by the claims appended hereto.