Gesture keyboard with gesture cancellation
By recognizing specific gesture characteristics as cancellation signals, the computer device addresses the issue of incorrect text input from high-speed or inaccurate gestures, enhancing user interaction efficiency and input correction capabilities.
Patent Information
- Application Number
- DE112013004614
- Authority / Receiving Office
- DE · DE
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2013-04-19
- Filing Date
- 2013-10-10
- Publication Date
- 2025-03-13
- Estimated Expiration
- 2033-10-10
AI Technical Summary
Existing graphical keyboards for continuous gestures often fail to accurately interpret high-speed or inaccurate gestures, leading to incorrect text input and reduced user interaction efficiency.
A computer device is trained to recognize specific gesture characteristics, such as zigzag patterns or paths extending outside the graphic keyboard, as cancellation signals, allowing users to cancel previous gesture inputs without interrupting the input process.
This solution enables users to efficiently correct erroneous inputs by allowing cancellation of gesture inputs with a single gesture, improving interaction efficiency and reducing the need for separate cancellation modes.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
background
[0001] Some computing devices (e.g., mobile phones, tablet PCs, etc.) may provide, as part of a graphical user interface, a graphical keyboard for composing text using a presence-sensitive display (e.g., a screen). The graphical keyboard may allow a user of the computing device to enter text (e.g., an email, a text message, or a document, etc.). For example, a presence-sensitive display of a computing device may output a graphical (or "soft") keyboard that allows the user to enter data by pointing (e.g., by tapping) keys displayed on the presence-sensitive display.
[0002] In some cases, a computing device may present a graphical continuous gesture keyboard (sometimes referred to as a "combo gesture keyboard" or "gesture keyboard") with which a user can interact by entering a continuous gesture indicating a word to be entered into the computing device (e.g., by swiping his or her finger across different regions of the presence-sensitive screen associated with the desired keys of the keyboard). In this way, graphical continuous gesture keyboards allow a user to enter a word or group of words with a single gesture. Thus, a continuous gesture keyboard may allow a user to achieve a certain level of input efficiency.
[0003] However, some continuous gesture keyboards have certain disadvantages. For example, some computing devices generate input events when a user performs a gesture on a presence-sensitive screen on which a graphical keyboard for gesture input is currently displayed. The input events may, for example, include representations of various locations on the presence-sensitive screen that the user's finger traversed while performing the gesture. However, in some examples, when the user performs tap and / or non-tap gestures at a high degree of speed and / or without high accuracy, the user's continuous gesture input may intersect some keys on the graphical keyboard that are not part of the user's intended input, or it may not intersect all of the keys that are part of the user's intended input.Accordingly, the computing device may detect and input gesture inputs that correspond to detections of user inputs that do not correspond to the user's intended inputs. Thus, gestures that involve a high degree of speed and / or lack precision may result in text input that is inconsistent with the user's intended inputs, thus reducing the speed with which the user can interact with the computing device. WO 2007 / 017 660 A2 relates to the field of a data input device and method, particularly, but not exclusively, to such a device and method for use in a computer, PDA, mobile phone, etc., and describes a character input device on an input means for use with a stylus, the device comprising: a plurality of areas each associated with one or more characters, the areas arranged in a predetermined orientation; a detector for identifying the contact or sequence of contacts made in the or each area upon input of a word or command with a touch of the stylus; a predictor for determining the characters associated with each of the contacts or sequence of contacts to determine the most likely sequence of characters forming the word or command, thereby identifying the word or command; and a selector for selecting the correct word or command if there is more than one predicted sequence of characters. demolition
[0004] Proposed herein are a method according to claim 1, a computing device according to claim 9, and a computer-readable storage medium according to claim 13. In one example, a method includes outputting, by a computing device and for display on a presence-sensitive display, a graphical user interface comprising a graphical keyboard including a group of keys, each key in the group of keys associated with a respective different region of the presence-sensitive display. The method further includes receiving, by the computing device, an indication of a gesture to select a sequence of one or more keys in the group of keys of the graphical keyboard.The method further includes determining, by the computing device and based at least in part on the indication of the gesture, that the gesture includes at least one feature associated with cancellation of the selected sequence of one or more keys. The method further includes, in response to determining that the gesture includes the at least one feature associated with cancellation, omitting, by the computing device, the selected sequence of one or more keys from input into a text input field.
[0005] In another example, a computer system includes at least one processor. The at least one processor is configured to output, for display on a presence-sensitive display, a graphical user interface comprising a graphical keyboard including a group of keys, each key in the group of keys associated with a respective different region of the presence-sensitive display. The at least one processor is further configured to receive an indication of a gesture to select a sequence of one or more keys in the group of keys of the graphical keyboard. The at least one processor is further configured to determine, based at least in part on the indication of the gesture, that the gesture includes at least one feature associated with a cancellation of the selected sequence of one or more keys.The at least one processor is further configured to omit the selected sequence of one or more keys from input into a text input field in response to determining that the gesture includes the at least one feature associated with the cancellation.
[0006] In another example, a computer-readable storage medium is encoded with instructions executable by at least one processor to output, for display on a presence-sensitive display, a graphical user interface comprising a graphical keyboard including a group of keys, each key in the group of keys associated with a respective different region of the presence-sensitive display. The instructions are further executable by the at least one processor to receive an indication of a gesture to select a sequence of one or more keys in the group of keys of the graphical keyboard. The instructions are further executable by the at least one processor to determine, based at least in part on the indication of the gesture, that the gesture includes at least one feature associated with a cancellation of the selected sequence of one or more keys.The instructions are further executable by the at least one processor to omit the selected sequence of one or more keys from input into a text input field in response to determining that the gesture includes the at least one feature associated with cancellation.
[0007] The details of one or more embodiments are set forth in greater detail in the accompanying drawings and the following description. Other features, objects, and advantages will be apparent from the description and drawings, as well as from the claims. Short description of the drawings Fig. 1 is a top view diagram showing an example computing device configured to implement a graphical keyboard with gesture cancellation features, according to illustrative aspects of the present disclosure. Fig. 2 is a schematic diagram of an example of the Fig. 1, configured to implement a graphical keyboard with gesture cancellation features, in accordance with illustrative aspects of the present disclosure. Fig. 3 is a top view diagram showing an example computing device configured to implement a graphical keyboard with additional gesture cancellation features, according to illustrative aspects of the present disclosure. Fig. 4 is a top view diagram showing an example computing device configured to implement a graphical keyboard with additional gesture cancellation features, according to illustrative aspects of the present disclosure. Fig. 5 is a flowchart depicting an example method that may be performed or implemented by a computer system to implement a graphical keyboard with gesture cancellation features, in accordance with illustrative aspects of the present disclosure. Fig. 6 is a block diagram showing an example computing device that outputs graphical content for display at a remote device, according to illustrative aspects of the present disclosure.
[0008] The various features described are not drawn to scale and are shown in a simplified form, highlighting one or more features relevant to the current application. Throughout the figures and in the text, like reference numerals refer to like elements. Detailed description
[0009] Generally, the present disclosure relates to systems, methods, techniques, and devices for providing a graphical keyboard configured to receive continuous gesture inputs and enable gesture cancellation features. In some examples, the computing device may determine whether features of a continuous gesture indicate cancellation of the gesture. In other words, the computing device may be configured to determine one or more gesture features of a continuous gesture input as an indication to cancel that gesture input or to cancel one or more gesture input features that were input prior to the cancellation gesture feature. As used in the present disclosure, any gesture input may include a gesture component or gesture feature that is simply a gesture or a portion of a longer or more complex gesture.A gesture may include any user gesture that is detectable by means of an input device that is included in, communicatively coupled to, or operatively coupled to a computing device.
[0010] For example, a computing device may be configured to interpret a gesture feature (e.g., a portion of a gesture) that extends outside a graphical keyboard as a cancellation gesture feature. As another example, a computing device may be configured to interpret a gesture feature that extends to one or more selected keys of a graphical keyboard, such as the spacebar or other non-character keys, as a cancellation gesture feature. In yet another example, a computing device may be configured to interpret a gesture feature that includes a serpentine or zigzag shape within a graphical keyboard as a cancellation gesture feature.In yet another example, a computing device may be configured to interpret a gesture feature that includes a path over time that repeatedly extends back and forth within a bounded area within a graphical keyboard as a cancellation gesture feature. In various examples, the computing device may interpret a gesture feature as inconsistent with an indication of an intended key selection gesture input or as below a probability threshold in a user gesture input model for an intended key selection gesture input. In any of these examples, a computing device may then respond to the cancellation gesture feature by omitting a selected sequence of one or more keys indicated by the preceding gesture feature from input into a text field or other input field.In various examples, the cancellation gesture may therefore be part of a continuous gesture that initially specifies a sequence of one or more keys for input, or the cancellation gesture may be a continuous part of a text input gesture. In various examples, the cancellation gesture may effectively cancel input of a selected sequence of one or more keys before the selected sequence of one or more keys is entered into a text input field.
[0011] A computing device may thereby, in some examples, allow a user to cancel a gesture input with a portion of the gesture without interrupting the process of gestural inputs. In some examples, the techniques allow a user to cancel the gesture without performing a separate cancellation input in a separate input mode, such as tapping in a text input field, after completing a gesture input to the graphical keyboard. A computing device capable of responding to gesture input cancellation features may allow for easier and more efficient correction of erroneous gesture keyboard inputs.
[0012] Fig. 1 is a top-view diagram showing an example computing device 10 configured to implement a graphical keyboard with gesture cancellation features, according to illustrative aspects of the present disclosure. Computing device 10 includes a presence-sensitive display 12 with a graphical user interface (GUI) 11 displayed thereon. GUI 11 includes a graphical keyboard 13, an input candidate field 15, and a text input field 17. Computing device 10 also includes a graphical keyboard module 120 and a gesture cancellation module 122. Graphical keyboard module 120 and gesture cancellation module 122 may be executable using software instructions stored on and / or executing on computing device 10.The graphical keyboard module 120 and the gesture cancellation module 122 may be parts of a single software application, separate applications, application modules, libraries, or other software components. The graphical keyboard module 120 may include instructions for rendering the graphical keyboard 13, the input candidate field 15, and / or the text input field 17 in the GUI 11.
[0013] As in the example of Fig. 1, a user 9 performs a touch gesture on the graphical keyboard 13 from a first position 1 along an input gesture path 19 to a second position 2. The first position 1 is within the region of the key for the letter "L" in the graphical keyboard 13, and the second position 2 is within the region of the key for the letter "E" in the graphical keyboard 13. The computing device 10 may detect that the user's gesture along the input gesture path 19 intersects the regions of several other keys within the graphical keyboard 13. The computing device 10 may process the gesture path 19 using gesture keyboard interpretation tools, such as a language model, a neighboring key comparison, a model of gesture input movements, and the like. The computing device 10 may determine one or more candidate words in response to the gesture input along the gesture input path 19 from position 1 to position 2.In the present example, computing device 10 outputs graphical representations of one or more specific candidate words in input candidate field 15 and outputs a hint marker 16 indicating one of the candidate words as a primary or default candidate word. Computing device 10 may also output, at least initially or on a conditional basis, the primary candidate word for display in text input field 17, as shown in FIG. Fig. 1 shown.
[0014] After the user 9 has input the gesture along the input gesture path 19, the user may change their intention regarding what the user wishes to input. The user 9 may therefore decide to cancel the input of the current gesture. The computing device 10, implementing the techniques of the present disclosure, may allow the user to cancel the previous gesture using a subsequent gesture, allowing the user to cancel the previous gesture in a single, fluid set of gestures. The computing device 10, using responses to inputs defined as cancellation gestures, may therefore potentially free the user from having to stop performing gestures and interact with the computing device 10 in a different interface mode to cancel a gesture input.
[0015] In particular, the user 9 may proceed to input a gesture from position 2 back and forth along the gesture path 21 within a bounded area 23 of the graphical keyboard 13, which the computing device 10 is configured to process as a cancellation gesture in the present example. The cancellation gesture path 21 has a zigzag shape with tight inflection points and nearly parallel lines within a bounded area 23 and can therefore be thought of as analogous to a "scratch out" gesture, which a user may intuitively associate with canceling a gesture or erasing an input. The computing device 10 may then respond to determining that the gesture includes a gesture cancellation feature along the cancellation gesture path 21, in the present example, by omitting the primary candidate word from input into a text input field 17.Computing device 10 may omit a sequence of characters, such as the primary candidate word, from input into text input field 17 by removing or deleting a graphic representation of a word from text input field 17, for example, after initially outputting the graphic representation of the word. In another example, computing device 10 may omit a sequence of characters, such as the primary candidate word, from input into text input field 17 by not inputting the word into text input field 17 at all or by not outputting a graphic representation of the word in text input field 17.
[0016] Omitting a selected sequence of one or more keys from input into a text input field may also include, in some examples, removing or deleting the selected sequence of one or more keys from a provisional text input field, a recommendation text input field, or a candidate text input field, which may or may not be rendered in a display before the selected sequence of keys is input into another text input field, such as a displayed text input field for a text message, an email, a social network post, or another specific text input field for a specific application or function.Omitting a selected sequence of one or more keys from input into a text input field may also include, in some examples, initially typing the sequence of one or more characters into a displayed text input field for a text message, email, social network post, or other specific text input field for a specific application or feature, and then removing or deleting the sequence of one or more characters from the displayed text input field for the text message, email, social network post, or other specific text input field for a specific application or feature.
[0017] Computing device 10 may be configured to use different criteria to distinguish between the zigzag shape of a cancellation gesture and other zigzag shapes of input gestures to select a sequence of keys that happen to be located along a zigzag-shaped path. For example, if computing device 10 determines that multiple line segments of a zigzag-shaped gesture all lie within a relatively tightly bounded area (e.g., bounded area 23), or that multiple reversal points of a zigzag-shaped gesture are positioned within relatively short distances from each other, or that the line segments of a zigzag-shaped gesture lie within relatively short distances from each other or overlap, computing device 10 may determine that the gesture is a cancellation gesture rather than an input gesture to select an additional sequence of keys.Computing device 10 may also combine some or all of the example criteria described above and / or additional criteria to determine that a gesture component is a cancellation gesture rather than an input gesture.
[0018] As another example, computing device 10 may use techniques to evaluate probabilities of a gesture being an input gesture or a cancellation gesture. For example, a gesture may include an initial gesture component (e.g., a portion of a gesture) to select a sequence of one or more keys corresponding to at least one potential word. For example, this initial gesture component may include a user's swipe gesture that touches or non-contacts a path that intersects a sequence of keys on the graphical keyboard. The gesture may then include a feature or portion (i.e., a "cancellation gesture feature") associated with a cancellation of a previous portion of the gesture, in accordance with the present disclosure.The cancellation gesture feature may include a gesture component subsequent to the initial gesture component that indicates a portion of the GUI that indicates no additional keys for key inputs. In some examples, the cancellation gesture feature may indicate an area of the GUI 11 outside of any of the keys of the graphical keyboard 13, such as the text input field 17. In some examples, the cancellation gesture feature may indicate an area of the GUI 11 that is still within the graphical keyboard 13, but that does not likely form text inputs in combination with the preceding gesture input, such as by indicating the spacebar 29.
[0019] In various examples, the cancellation gesture feature may indicate an area of the graphical keyboard 13 that forms a sequence of keys that, in combination with the initial gesture component, is below a probability threshold for selecting a sequence of letters to complete any potential word, as further described below. For example, a gesture input may include a "scribble" gesture indicating a repeating sequence of a small number of keys, such that the sequence of keys would form a repeating sequence of letters that do not form a word.Determining that a gesture is a cancellation gesture may further include determining that a subsequent gesture component is below the probability threshold for selecting, in combination with the initial gesture component, a sequence of letters to complete any potential word, such as according to one or more language models for one or more given languages. That is, computing device 10 may compare a probabilistic model of the indicated sequence of keys to a language model and determine that no potential word exists in the language model corresponding to any interpretation of the sequence of keys within a nominal probability threshold.Determining that a gesture is a cancellation gesture may further include determining that a subsequent gesture component points to or intersects a particular location of the GUI 11, a particular key of the graphical keyboard 13, or repeatedly extends back and forth within a limited area of the graphical keyboard 13, for example.
[0020] The computing device 10 may also be configured to process various other gestures as cancellation gestures, in addition to a back-and-forth or zigzag gesture, as described with reference to Fig. 1. Some additional examples of how the computing device 10 processes gestures as cancellation gestures are described below with reference to the Fig. 3 and Fig. 4 described.
[0021] In the example of Fig. 1, computing device 10 outputs GUI 11 for display on presence-sensitive display 12, such that GUI 11 includes graphical keyboard 13. Graphical keyboard 13 includes a group of keys, each key in the group of keys associated with a respective different region of presence-sensitive display 12. Computing device 10 receives an indication of a user's gesture along input gesture path 19 from position 1 to position 2 and then along cancellation gesture path 21 to select a sequence of one or more keys within the group of keys of graphical keyboard 13. Computing device 10 then determines, based at least in part on the indication of the gesture, that the gesture includes at least one feature associated with cancellation of the selected sequence of one or more keys, such as the gesture feature along cancellation gesture path 21.In response to determining that the gesture includes the at least one feature associated with cancellation, the computing device 10 omits the selected sequence of one or more keys from being input into the text input field 17.
[0022] Computing device 10 may be configured to determine that a gesture component having a particular path over time includes a gesture cancellation feature. Determining that the gesture includes a feature associated with cancellation may include determining that the gesture includes the gesture component having a particular path over time. The particular path over time may form a sequence of detected gesture positions with corresponding indications of time for each of the positions or at least some of the positions. The particular path over time may include a path that extends back and forth more than once within a bounded area within the graphical keyboard, such as cancellation gesture path 21 extending back and forth more than once within bounded area 23 within graphical keyboard 13.The computing device 10 may evaluate whether the area corresponding to the cancellation gesture path 21 is a bounded area for the purpose of processing as a gesture cancellation feature by various criteria, such as, for example, whether the bounded area has substantially the same width as or less than a width of one of the keys in the graphical keyboard 13.
[0023] Computing device 10 may be configured to determine that a gesture component having a particular shape includes a gesture cancellation feature. Determining that the gesture includes the gesture cancellation feature associated with the cancellation may include determining that the gesture includes the gesture component having the particular shape. The particular shape may include a zigzag having a first and a second set of inflection points, the first set of inflection points being within a first bounded area and the second set of inflection points being within a second bounded area within the graphical keyboard, such as the inflection points of cancellation gesture path 21 being grouped within two smaller bounded areas near opposite ends of bounded area 23 within graphical keyboard 13.The computing device 10 may evaluate whether the regions corresponding to the two groups of turning points of the cancellation gesture path 21 are bounded regions for the purpose of processing as gesture cancellation features by various criteria, such as, for example, whether the bounded regions are substantially the same size or smaller than a region of one of the keys in the graphical keyboard 13.
[0024] For example, in the example of Fig. 1, the zigzag shape of the cancellation gesture path 21 includes a group of inflection points within a portion of the area of the graphical key for the letter "R," wherein the portion of the area surrounding the inflection points is smaller than the area of the graphical key. Similarly, the other group of inflection points of the zigzag shape of the cancellation gesture path 21 is positioned within a portion of the area of the graphical key for the letter "A," wherein the portion of the area surrounding this group of inflection points is also smaller than the area of the graphical key. The inflection points may also be distributed across the boundaries between two or more keys and still be grouped within an area smaller than the area of any one key, such that the computing device 10 processes a zigzag gesture with this group of inflection points as a cancellation gesture.
[0025] While these examples illustrate some details of implementations by which computing device 10 may be configured to process gestures as cancellation gestures and respond by omitting selected sequences, computing device 10 may also utilize many other sets or criteria or techniques for processing certain gestures as gesture cancellation features. While the previously described techniques and other implementations may include details such as determining whether the area of a gesture is a bounded area according to selected criteria or whether the shape of a gesture includes components or characteristics that satisfy the form of a cancellation gesture, these implementation details may not necessarily be recognizable to a user and may instead allow a user to intuitively and quickly use cancellation gestures in the process of interacting with graphical keyboard 13.
[0026] The input device for detecting a gesture and communicating an indication of the gesture to a computing device may be a touch screen or other presence-sensitive display (e.g., the presence-sensitive display 12 of Fig. 1), an acoustic sensor, a video camera sensitive to visible, infrared, or other wavelengths of electromagnetic radiation, or another type of sensing device. The input device may communicate the indication of the gesture in any of various forms of encoded data. The computing device receiving the indication of the gesture from the input device may be understood as an entire device, such as computing device 10, or as a component of a device, such as a set of processors or an individual processor, located within or near, separate from, or remote from the input device. A computing device may detect input by an input device detecting the input and communicating an indication of the input, for example, to the computing device.
[0027] The computing device 10 may, in various examples, be a smartphone, a tablet computing device, a laptop or desktop computer, a computing device in a wearable form factor such as a wristwatch or eyeglass computing device, or another type of computing device. The computing device 10, in this example, includes a presence-sensitive display 12. The computing device 10 outputs the GUI 11, which may include output from applications executing on the computing device 10, including the graphical keyboard module 120 and the gesture cancellation module 122, for display on the presence-sensitive display 12. Additional applications or application processes may also execute on the computing device 10 without corresponding GUIs. Additional details of example computing devices are described in more detail below with reference to subsequent figures, including the example of Fig. 2.
[0028] Fig. 2 is a schematic diagram of an example of the computing device 10 as shown in Fig. 1, configured to implement a graphical keyboard application, according to an illustrative example of the present disclosure. The computing device 10 may execute a graphical keyboard module 120 and / or gesture cancellation module 122 at the level of an application or application process. The computing device 10 of the present disclosure may be implemented in a variety of forms, such as a smartphone, a tablet computing device, or, for example, a portable computing device. One or more components of the example computing device 10 may be optional in various implementations, and different implementations may include additional components beyond those described in Fig. 2 or contain one or more of the Fig. 2 shown components. Although in the Fig. 1 and Fig. 2 for the purpose of example as a freestanding computing device, the computing device 10 may be any component or system that includes one or more processors (e.g., one or more processors 200) or other suitable computing environment for executing software instructions and, for example, may not necessarily include one or more of the elements shown in Fig. 1 and Fig. 2 (e.g. the presence-sensitive display 12).
[0029] The computing device 10 may include various components, including one or more processors 200, memory 202, one or more communication units 216 (e.g., the network interface 204), one or more data storage devices 206, a power source 208, one or more microphones 210, one or more speakers 212, and one or more user interface devices 214, such as the presence-sensitive display 12. Each of the components 200, 202, 216, 204, 206, 208, 210, 212, and 12 may be interconnected (physically, communicatively, and / or operatively) by any of a variety of physical and / or communicative interconnection means for inter-component communications, and each may relate to one or more components.
[0030] The user interface devices 214 may include one or more input devices and one or more output devices. The presence-sensitive display 12, the microphone 210, and the speakers 212 are illustrative examples of user interface devices 214 included in the computing device 10. In some examples, the presence-sensitive display 12 may generate a signal corresponding to the position or positions of the input device, possibly including how the position changes over time. The presence-sensitive display 12 may include one or more input and / or output devices, such as a touch screen or other touch-sensitive display, a proximity gesture-sensitive display sensitive to gesture inputs that are close but not necessarily in contact, a display device, and one or more cameras, or other implementations.The presence-sensitive display 12 may include a liquid crystal display (LCD) display screen or a display screen using another type of graphical output technology. The presence-sensitive display 12 may also be a touch screen including an electrically capacitive layer sensitive to the presence of user contacts and configured to translate the positions of user contact touch gesture inputs and the movements of touch gesture inputs as they change position over time into signals provided to a driver for the touch screen or other feature for receiving information regarding the gesture inputs. The presence-sensitive display 12 may also include part of a computing device having a wearable form factor, such as, for example, an eyeglass or watch form factor.In other examples, the presence-sensitive display 12 may also be another type of presence-sensitive display.
[0031] In some examples, the presence-sensitive display 12 may detect an object at and / or near the screen of the presence-sensitive display 12. In various examples, the presence-sensitive display 12 may detect contact gestures on a touch screen or non-contact gestures near or far from a gesture-sensing device. As a non-limiting example, the presence-sensitive display 12 may detect an object, such as a finger or stylus, that is within two inches or less of the physical screen of the presence-sensitive display 12. The presence-sensitive display 12 may determine a location (e.g., an xy coordinate) of the presence-sensitive display 12 at or near which the object was detected.In another non-limiting example, the presence-sensitive display 12 may detect an object six inches or less from the physical screen of the display, or six feet or less from the physical screen of the display, or at any distance within a sensing range of an optical, acoustic, capacitance, or other gesture input sensing device. The presence-sensitive display 12 may determine the location selected by the object (e.g., the user's finger) using capacitive, inductive, and / or optical sensing techniques. In some examples, the presence-sensitive display 12 provides output using tactile, audio, or video stimuli.
[0032] The presence-sensitive display 12 may be or include both an input device and an output device that generates one or more signals corresponding to a location selected by a gesture input performed by the user on or near the presence-sensitive display 12. In some examples, the presence-sensitive display 12 may detect the presence of an input device, e.g., one or more fingers, a pen, or a stylus, that may come into contact with the presence-sensitive display 12 or that may be near, but not in physical contact with, the presence-sensitive display 12. A "gesture input" may therefore refer to a near presence detected by the presence-sensitive display 12 or to physical contact with the presence-sensitive display 12, e.g., in the case of a touch-sensitive display.Different implementations may include different types of presence-sensitive display, such as a device that reads gesture inputs through visual, audible, remote capacitance, or other type of signals, and that also processes user gesture inputs detected through visual, audible, remote capacitance, and other signals with pattern recognition software or other means to derive program inputs from user input signals.
[0033] The presence-sensitive display 12 may provide signals it generates based on user gesture inputs as data to the graphical keyboard module 120 and / or the gesture cancellation module 122 and / or to other application modules 185 executing on the computing device 10 or components of the computing device 10. One or more intermediate applications or operating system components of the computing device 10 may also filter or process the signals generated via the presence-sensitive display 12 before providing filtered or processed input signals to the graphical keyboard module 120 and / or the gesture cancellation module 122 or other one or more applications or components.
[0034] Computing device 10 has stored on one or more of storage devices 206 the operating system 190, which may be executed by one or more processors 200. Operating system 190, in various examples, may control aspects of the operation of components of computing device 10 and may support the operation of application modules 185 as higher-level software. Computing device 10, in this example, has application modules 185, which may include a graphical keyboard module 120 and / or a gesture cancellation module 122 executable by computing device 10. Graphical keyboard module 120 and / or gesture cancellation module 122 may include executable instructions to perform or support any or all of the gesture cancellation and other gesture keyboard features and behaviors discussed in the present disclosure, or any other aspects of the present disclosure.The operating system 190, in one example, may support the interaction of the graphical keyboard module 120 and / or the gesture cancellation module 122 with any or all of the processors 200, the memory 202, the communication units 216 (e.g., the network interface 204), the data storage device 206, the power source 208, one or more microphones 210, one or more speakers 212, and the presence-sensitive display 12.
[0035] The graphical keyboard module 120 and / or the gesture cancellation module 122 may include executable instructions to receive gesture inputs and generate text inputs based on the gesture inputs. The graphical keyboard module 120 and / or the gesture cancellation module 122 may include executable instructions to receive gesture cancellation inputs and respond to gesture cancellation inputs by canceling candidate text strings rather than entering the candidate text strings into a text display GUI or a text input feature of an application. The graphical keyboard module 120 and / or the gesture cancellation module 122 may also include executable instructions to perform or facilitate any or all of the gesture keyboard features or behaviors discussed in the present disclosure, or any other aspects of the present disclosure.
[0036] The graphical keyboard module 120 and / or the gesture cancellation module 122 may each be an independent application or application process, and in some examples, the graphical keyboard module 120 and / or the gesture cancellation module 122 may also each collect or receive data from other applications among the application modules 185. The graphical keyboard module 120 and / or the gesture cancellation module 122 may also, in some examples, be pieces of executable code within a single application or application process. The graphical keyboard module 120 and / or the gesture cancellation module 122 may also be an add-on integrated into one or more of the application modules 185. Some or all of the functions of the graphical keyboard module 120 and / or the gesture cancellation module 122 may also be performed, supported, or enabled by portions of the operating system 190, as described in more detail below.
[0037] The graphical keyboard module 120 and / or the gesture cancellation module 122 may include program instructions and / or data executable by the computing device 10 or by at least one of the one or more processors 200 of the computing device 10. For example, the graphical keyboard module 120 and / or the gesture cancellation module 122 may include computer-executable software instructions that cause the computing device 10 to perform any one or more of the operations and acts described in the present disclosure. In various examples, the operating system 190 and the graphical keyboard module 120 and / or the gesture cancellation module 122 may include code and / or data stored on one or more data storage devices 206 that may be read and executed or processed by the one or more processors 200, and that may be stored, at least temporarily, in the memory 202 in the process.
[0038] In the illustrative example of the computing device 10 shown in Fig. 2, the operating system 190 may include an operating system kernel 192, which may include various device drivers, kernel extensions, and, for example, core modules. The operating system 190 may also include or interact with a set of libraries 180, which may include various more or less standard, specialized, open-source, and / or proprietary libraries. These may include a specialized library, such as the graphical keyboard structure 182, which may perform or support graphical keyboard functions (e.g., gesture cancellation), according to any of the examples described herein.Performing or supporting graphical keyboard functions within the operating system 190, such as with the graphical keyboard structure 182, rather than solely at the level of a top-layer application, can potentially enable gesture input interactions, including gesture inputs and gesture cancellations, with faster or more computationally efficient performance, tighter or more reliable interaction with other applications among the application modules 185, or other advantages in some implementations.
[0039] In an illustrative example of the computing device 10, such as that shown in Fig. 2, the operating system 190 may also include or interact with a runtime 194, which may include various core libraries 196 and / or a virtual machine 198, such as the "Dalvik" virtual machine in one example implementation. The virtual machine 198 may abstract certain aspects and features of the computing device 10 and allow the higher-level application modules 185 to execute within the environment of the virtual machine 198 so that software code in the higher-level application modules 185 may be compiled into bytecode for execution by the virtual machine 198. The virtual machine 198 may then compile the instructions into native machine code of the one or more processors 200 of the computing device 10, which may include optimizations specific to those processors 200.Computing device 10 may also include an application structure 130 that executes on top of runtime 194 and libraries 180, and that may include resources to support the execution of application modules 185 that execute on top of application structure 130. Other implementations may include other elements of a software stack between operating system kernel 192 and top-level application modules 185.
[0040] For example, application structure 130 may include a graphical keyboard manager 132, which may itself include executable instructions to perform or facilitate any or all of the gesture cancellation functions in a gesture keyboard or any other aspects of the present disclosure. Performing or facilitating gesture keyboard functions in application structure 130, such as with graphical keyboard manager 132, in combination with graphical keyboard structure 182 or not, may also enable gesture input interaction, including gesture cancellation, in some implementations with faster or more computationally efficient execution or other benefits.The computing device 10 may perform or facilitate any graphical keyboard functions described herein with any or all of the graphical keyboard module 120, the gesture cancellation module 122, the graphical keyboard manager 132 in the application structure 130, the graphical keyboard structure 182 in the libraries 180, or any other element of a software stack included in or operatively accessible by the computing device 10.
[0041] In various examples, executable instructions for applications or software elements, such as the graphical keyboard module 120 and / or the gesture cancellation module 122, may be written in executable instructions that may be executable as native code by the computing device 10. In various examples, executable instructions for applications or software elements, such as the graphical keyboard module 120 and / or the gesture cancellation module 122, may be written in a high-level programming language, then compiled into virtual machine-executable bytecode to be executed by the virtual machine 198, and finally executed as native code by the computing device 10, as another example, with the virtual machine 198 abstraction.In another illustrative example, executable instructions for applications or software elements, such as the graphical keyboard module 120 and / or the gesture cancellation module 122, may be compiled from a higher-level language, such as JavaScript, directly into native machine code for execution by one or more processors. In another illustrative example, the libraries 180 may include the standard C library (libc) or another C library that provides native support for C functions, and the graphical keyboard module 120 and / or the gesture cancellation module 122 may be written in C and supported by libc in the libraries 180.
[0042] In various implementations, the operating system 190 and / or the virtual machine 198 may be configured to execute code written in various other languages, such as C++, Go, JavaScript, Dart, Python, Ruby, or Clojure, to name a few non-limiting examples, either natively or in bytecode executable for a virtual machine, or compiled into an intermediate language, or compiled into assembly language or machine code native to one or more of the processors 200 of the computing device 10, potentially using, for example, just-in-time (JIT) compilation.Various examples may not use a virtual machine or intermediate language and may use applications that natively execute on the computing device 10 or that use some other technique, compiler, translator, or abstraction layer for translating a higher-level language into code that natively executes on the computing device 10.
[0043] The graphical keyboard structure 182, the libraries 180, or other aspects of the operating system 190 or the software stack underlying the application modules 185 may include code to provide any or all of the functionality for performing gesture cancellation for graphical keyboard inputs according to any of the examples described herein, and may abstract this functionality at an underlying level for the application modules 185.Code for implementing the functionality of any of the aspects of the present disclosure may therefore be included in any level or portion of the overall software stack that executes on the computing device 10 or that is operatively accessible to the computing device 10, such as in a web application or other program that executes on resources external to the computing device 10 but that interact with the computing device 10, such as via Hypertext Transfer Protocol (HTTP), for example, over a wireless connection.
[0044] In various examples, the computing device 10 may also include various application programming interfaces (APIs) that are native to the operating system 190 and that execute on top of the operating system 190 and that are intended to provide resources that automate or facilitate higher-level applications that access one or more APIs. These one or more APIs may include object libraries or other libraries, tool sets, or structures and may be associated with an original programming environment for writing applications. The computing device 10 may also have a different specific organization of APIs, libraries, structures, runtime, and / or virtual machine associated with or built on top of the operating system 190 that is different than that described in Fig. 2 example organization shown.
[0045] Higher-level applications, such as the graphical keyboard module 120 and / or the gesture cancellation module 122, may therefore utilize any of various lower-level abstractions, properties, libraries, or functions that may be provided by any of the operating system 190, the operating system kernel 192, the libraries 180, the graphical keyboard structure 182, the runtime 194, the core libraries 196, the virtual machine 198, the application structure 130, the graphical keyboard manager 182, or other compilers, translators, structures, APIs, or other types of resources, or any combination of the foregoing, with which the computing device 10 is configured to enable functions such as gesture cancellation functions in a graphical keyboard, and other functions as described herein.
[0046] The one or more processors 200 may, in various examples, be configured to implement functionality and / or process instructions for execution within the computing device 10. For example, the processors 200 may be configured to process instructions stored in the memory 202 or instructions stored on the storage devices 206. The computing device 10 may include multiple processors and divide certain tasks among different processors. For example, the processors 200 may include a central processing unit (CPU), which may have one or more processor cores. The processors 200 may also include one or more graphics processing units (GPUs) and / or additional processors. The processors 200 may be configured for multi-threaded processing.The processors 200 and / or the operating system 190 may divide tasks among different processors or processor cores according to different criteria, and different tasks or portions of tasks may also be divided among different levels of software and hardware.
[0047] Memory 202 may, in various examples, be configured to store information within computing device 10 during operation. Memory 202 may, in various examples, include a computer-readable storage medium. In various examples, memory 202 is temporary memory, and computing device 10 may rely on one or more data storage devices 206 for long-term storage rather than memory 202. Memory 202 may, in various examples, be volatile memory, meaning that memory 202 does not retain stored content for an extended period of time once power is removed, such as when computing device 10 is turned off.Examples of volatile memories that may characterize memory 202 include random access memories (RAM), dynamic random access memories (DRAM), static random access memories (SRAM), and other forms of volatile memory. In various examples, memory 202 may be used to store program instructions for execution by processors 200. Memory 202 may, in various examples, be used by software or applications executing on computing device 10 to temporarily store data and / or software code during application execution.
[0048] The one or more data storage devices 206 may, in various examples, include one or more computer-readable storage media. The data storage devices 206 may be configured to store larger amounts of information than the memory 202. The data storage devices 206 may also be configured for long-term storage of information. In various examples, the data storage devices 206 include non-volatile storage elements. Examples of such non-volatile storage elements include magnetic hard disks, optical disks, floppy disks, flash memory, or forms of electrically programmable memories (EPROM) or electrically erasable and programmable memories (EEPROM).In other examples, memory 202 may also be configured for long-term data storage, and any of a variety of technologies may blur the boundaries between memory and data storage, and between volatile and non-volatile. Memory 202 and data storage devices 206 may also include various levels of cache and any of various buffers or other temporary storage, which may be incorporated at any of various levels of a processing architecture and may have different latency and capacity profiles, including dedicated caches exclusively dedicated to specific processing cores or processing chips, for example.
[0049] Computing device 10 may also include one or more communication units 216 (e.g., network interface 204) in various examples. Computing device 10 uses communication units 216 in some examples to communicate with external devices, such as servers or data centers, over one or more networks, which may include one or more wireless networks. Network interface 204 may be or include a network interface card, such as an Ethernet card, an optical transceiver, a radio frequency transceiver, or any other type of component configured to send and receive information. Other examples of such network interfaces may include Bluetooth, 3G, 4G, LTE, and Wi-Fi radios configured for mobile computing devices, as well as Universal Serial Bus (USB).In various examples, computing device 10 may use communication units 216 to wirelessly communicate with an external device, such as a server or a data center, that may provide data to computing device 10.
[0050] Computing device 10 may also include or be configured to connect to any of a variety of other input and / or output devices, such as speakers, microphones, physical buttons, a virtual or physical keyboard or keypad, a mouse, a touchpad, a trackball, a voice user interface system, an acoustic vibration sensor, a sound card, a video graphics adapter card, a video camera connected to a video gesture input interpretation system, or any other type of device for capturing and / or translating input from a user or for converting a signal into a form of graphical, audio, tactile, or other form of user output that can be sensed by a user.These may be included in user interface devices 214 as part of the computing device 10 and may also include separate and / or remote devices operatively connected to the computing device 10.
[0051] In various examples, computing device 10 may include one or more power sources 208, which may be rechargeable and provide power to computing device 10. In various examples, power source 208 may be a lithium-ion battery, a nickel-cadmium battery, a nickel-metal hydride battery, or another suitable power source.
[0052] The computing device 10 is thus an illustrative example of a computing device for implementing a graphical keyboard with gesture cancellation features in the form of the graphical keyboard module 120, the gesture cancellation module 122, the graphical keyboard manager 132 and / or the graphical keyboard structure 182 of Fig. 2 (hereinafter collectively referred to as “Modules 120 / 122 / 132 / 182”) and as illustrated in Fig. 1 in operation. Computing device 10 or other computing device implementations may have one or more applications executing thereon that implement any or all of the features of a graphical keyboard with gesture cancellation features.
[0053] Fig. 3 is a top view diagram showing an example computing device 10 configured to implement a graphical keyboard with additional gesture cancellation features, according to illustrative aspects of the present disclosure. Computing device 10 displays GUI 11 on presence-sensitive display 12 for a user to interact with a graphical keyboard 13, similar to the features described above with reference to Fig. 1. In the example of Fig. 3, the user initially makes the same input gesture along the input gesture path 19, starting in the area of the graphic keyboard 13 for the key for the letter “L” and progressing to the key for the letter “E” before the user decides to cancel the gesture, as described above with reference to Fig. 1. In this example, the user continues the gesture in an upward direction from the key for the letter "E" out of the graphic keyboard 13, into the input candidate field 15, and then into the text input field 17 to position 3.
[0054] Computing device 10, in the present example, processes the gesture portion along gesture path 321, progressing upward into the area of text input field 17, as a cancellation gesture. This is one example of different implementations in which computing device 10 may process a gesture extending beyond graphical keyboard 13 as a cancellation gesture. Computing device 10 determines, based at least in part on data from presence-sensitive display 12 indicative of information about the gesture, that the gesture includes a gesture portion extending along gesture path 321 into text input field 17, which computing device 10, in the present example, processes as a cancellation gesture.Computing device 10 then responds to determining that the gesture includes the cancellation gesture extending along cancellation gesture path 320 by omitting the candidate word formed by the previously selected sequence of keys from input to text input field 17, such as by removing or deleting the candidate word from text input field 17.
[0055] Fig. 4 is a top view diagram showing an example computing device configured to implement a graphical keyboard with additional gesture cancellation features, according to illustrative aspects of the present disclosure. Computing device 10 displays GUI 11 on presence-sensitive display 12 to allow a user to interact with a graphical keyboard 13, similar to the features described above with reference to Fig. 1 and Fig. 3. In the example of Fig. 4, the user initially makes the same input gesture along the input gesture path 19, starting in the area of the graphic keyboard 13 for the key for the letter “L” and progressing to the key for the letter “E” before the user decides to cancel the gesture, as previously described with reference to the Fig. 1 and Fig. 3. In this example, the user continues the gesture in a downward direction from the key for the letter "E" into the area of the graphic keyboard 13 corresponding to the space bar 29, to position 4.
[0056] Computing device 10, in this example, processes the gesture portion along gesture path 323 that continues into the area of spacebar 29 as a cancellation gesture. This is one example of different implementations in which computing device 10 processes a gesture that intersects a particular one or more keys of graphical keyboard 13 as a cancellation gesture. Computing device 10 determines, based at least in part on data from presence-sensitive display 12 indicative of information about the gesture, that the gesture includes the gesture portion that extends into spacebar 29, which computing device 10, in this example, processes as a cancellation gesture.Computing device 10 then responds to determining that the gesture includes the cancellation gesture extending along cancellation gesture path 323 by omitting the candidate word formed by the previously selected sequence of keys from input to text input field 17, as described above. Computing device 10 may also be configured to process a gesture that intersects other non-character keys of graphical keyboard 13 as a cancellation gesture, where spacebar 29 may be an example of a non-character key whose region may correspond to a cancellation gesture. Other non-character keys may include a microphone key, an enter key, or a caps lock key, as some illustrative examples.Such buttons can typically be selected by completing a gesture and then selecting the button separately, whereas in some examples of gesture cancellation the buttons can be used when they are selected as part of a gesture already in progress.
[0057] In various examples, a computing device 10 may cancel a gesture input in response to an indication that the gesture indicates a path (e.g., an input gesture path) from an area within a graphical keyboard to an edge of the keyboard or to an area outside the keyboard. For example, the gesture path 321, as shown in Fig. 2, a path extending from an area inside the graphical keyboard to an area outside the graphical keyboard. Computing device 10 may determine that gesture path 320 extends from an area inside the graphical keyboard 13 to an area outside the graphical keyboard 13, and in response, determine that gesture path 321 includes a cancellation feature and cancel the input of the selected keys determined from the earlier part of gesture path 321. In other examples, computing device 10 may determine that a path extending from an area inside the graphical keyboard to an edge of the graphical keyboard forms a cancellation feature. In this example, computing device 10 may determine that the Fig. 3 shown gesture path 321 from an area within the graphic keyboard 13 to the edge of the graphic keyboard 13 (in particular at the top edge of the graphic key for the letter “E”, as in Fig. 3, in this example). Computing device 10 may then determine that gesture path 321 includes a cancellation feature because gesture path 321 extends from an area within the graphical keyboard to an edge of the graphical keyboard.
[0058] In various examples, a computing device may determine that a gesture input path extending from an area within the graphical keyboard to an edge of the graphical keyboard or to an area outside the graphical keyboard has an input cancellation feature, regardless of which part of the edge of the keyboard the path extends to or which area outside the graphical keyboard the path extends to. For example, computing device 10 may also receive an indication that the gesture path extends from an area within the graphical keyboard 13 to or outside a top edge, a left or right side edge, or a bottom edge of the graphical keyboard 13.Extending to an edge or an area outside of the graphical keyboard 13 may or may not, in various examples, further include extending to an edge or extending outside the area of a presence-sensitive display 12 or otherwise outside the area of a presence-sensitive input device, without affecting a determination by the computing device that the gesture input path has extended to an edge or an area outside of the graphical keyboard 13.
[0059] A computing device embodying a graphical keyboard may implement any or all of the gesture cancellation features described with respect to Fig. 1, Fig. 3 and Fig. 4, and / or implement other gesture cancellation features and allow a user to use any one or more gesture cancellation features to cancel a gesture. A computing device may predeterminably enable one or more selected gesture cancellation features and may also enable one or more additional gesture cancellation features to be optionally enabled by a user.
[0060] Fig. 5 is a flowchart illustrating an example process 300 or method that may be performed or implemented by a computing device, such as the computing device 10 of Fig. 1 to 4 or any one or more processors 200 of the computing device 10, as in Fig. 2, for example, to implement gesture cancellation features according to aspects of the present disclosure. The process 300 is only one example, and other implementations may include more or fewer elements or features than those shown in Fig. 5. The process 300 is described below with reference to various features that may be used with reference to any or all of the Fig. 1 to 4, such as, for example, the one or more processors 200 of Fig. 2, the presence-sensitive display 12 from Fig. 1 to 4 and the graphic keyboard 13 from Fig. 1, Fig. 3 and Fig. 4.
[0061] In process 300, a device, such as, for example, computing device 10 or the one or more processors 200 thereof, may execute instructions such as those of the graphical keyboard module 120 and / or the gesture cancellation module 122. In the following example, the one or more processors 200 may execute the graphical keyboard module 120 and / or the gesture cancellation module 122 as a representative example. In this example, with reference to elements of the preceding figures, a device, such as the one or more processors 200, may output for display on a presence-sensitive display (e.g., presence-sensitive display 12) a graphical user interface (e.g., GUI 11) comprising a graphical keyboard (e.g., graphical keyboard 13) including a group of keys, each key in the group of keys being associated with a respective different region of the presence-sensitive display (302).The device, such as the one or more processors 200, may also receive an indication of a gesture to select a sequence of one or more keys within the group of keys of the graphical keyboard (304). The device, such as the one or more processors 200, may also determine, based at least in part on the indication of the gesture, that the gesture includes at least one feature associated with cancellation of the selected sequence of one or more keys (e.g., the gesture cancellation features 21, 321, 323) (306). The device, such as the one or more processors 200, may, in response to determining that the gesture includes the at least one feature associated with cancellation, omit the selected sequence of one or more keys from input into a text input field (e.g., the text input field 17) (308). The device, such as the computing device 10 or computing device components thereof (e.g.,the one or more processors 200), or other processors or devices may further perform any of the functions and processes associated with the . Fig. 1 to 4 and Fig. 6 are described.
[0062] Example 1. A method comprising: outputting, by a computing device and for display on a presence-sensitive display, a graphical user interface comprising a graphical keyboard including a group of keys, each key in the group of keys associated with a respective different region of the presence-sensitive display; receiving, by the computing device, an indication of a gesture to select a sequence of one or more keys in the group of keys of the graphical keyboard; determining, by the computing device and based at least in part on the indication of the gesture, that the gesture includes at least one feature associated with a cancellation of the selected sequence of one or more keys;and, in response to determining that the gesture includes the at least one feature associated with cancellation, omitting, by the computing device, the selected sequence of one or more keys from an input into a text input field;
[0063] Example 2. The method of Example 1, wherein the at least one feature associated with the cancellation comprises a gesture component indicative of a particular location of a graphical user interface rendered on the presence-sensitive display, and wherein determining that the gesture includes the at least one feature associated with the cancellation further comprises: determining, by the computing device, that the gesture includes the gesture component indicative of the particular location.
[0064] Example 3. The method of any one of examples 1 to 2, wherein the at least one feature associated with the cancellation comprises a gesture component having a particular shape, and wherein determining that the gesture includes the at least one feature associated with the cancellation further comprises: determining, by the computing device, that the gesture includes the gesture component having the particular shape.
[0065] Example 4. The method of any one of examples 1 to 3, wherein the at least one feature associated with the cancellation comprises a gesture component having a particular path over time, and wherein determining that the gesture includes the at least one feature associated with the cancellation further comprises: determining, by the computing device, that the gesture includes the gesture component having the particular path over time.
[0066] Example 5. The method of any one of examples 1 to 4, wherein the gesture includes an initial gesture component to select the sequence of one or more keys corresponding to at least one potential word, wherein the at least one feature associated with the cancellation comprises a subsequent gesture component after the initial gesture component that is below a probability threshold for selecting, in combination with the initial gesture component, a sequence of letters to complete any potential word.
[0067] Example 6. The method of Example 5, wherein determining that the gesture includes the at least one feature associated with the cancellation further comprises: determining, by the computing device, that the gesture includes the subsequent gesture component that is below the probability threshold for selecting, in combination with the initial gesture component, a sequence of letters to complete any potential word.
[0068] Example 7. The method of any of examples 5 to 6, wherein determining that the subsequent gesture component is below a probability threshold for selecting, in combination with the initial gesture component, a sequence of letters to complete any potential word comprises processing a path of the gesture using gesture keyboard interpretation tools selected from one or more of: a language model, a neighboring key comparison, and a gesture input motion model.
[0069] Example 8. The method of any of Examples 1 to 7, wherein the at least one feature associated with the cancellation comprises a gesture component indicative of a particular path along a graphical user interface rendered at the presence-sensitive display, and wherein determining that the gesture includes the at least one feature associated with the cancellation further comprises: determining, by the computing device, that the gesture includes the gesture component indicative of the particular path.
[0070] Example 9. A computing device comprising: at least one processor; wherein the at least one processor is configured to: output, for display on a presence-sensitive display, a graphical user interface comprising a graphical keyboard including a group of keys, each key in the group of keys associated with a respective different region of the presence-sensitive display; receive an indication of a gesture to select a sequence of one or more keys within the group of keys of the graphical keyboard; determine, based at least in part on the indication of the gesture, that the gesture includes at least one feature associated with a cancellation of the selected sequence of one or more keys;and in response to determining that the gesture includes the at least one feature associated with cancellation, omitting the selected sequence of one or more keys from input into a text input field;
[0071] Example 10. The computing device of Example 9, wherein the at least one feature associated with the cancellation comprises a gesture component indicative of a particular location of a graphical user interface rendered at the presence-sensitive display, and wherein the at least one processor is further configured to: determine that the gesture includes the gesture component indicative of the particular location.
[0072] Example 11. The computing device of any of examples 9 to 10, wherein the at least one feature associated with the cancellation comprises a gesture component having a particular shape, and wherein the at least one processor is further configured to: determine that the gesture includes the gesture component having the particular shape.
[0073] Example 12. The computing device of any of Examples 9 to 11, further comprising means for performing any of the methods of Examples 4 to 8.
[0074] Example 13. A computer-readable storage medium encoded with instructions executable by at least one processor to: output, for display on a presence-sensitive display, a graphical user interface comprising a graphical keyboard including a group of keys, each key in the group of keys associated with a respective different region of the presence-sensitive display; receive an indication of a gesture to select a sequence of one or more keys within the group of keys of the graphical keyboard; determine, based at least in part on the indication of the gesture, that the gesture includes at least one feature associated with a cancellation of the selected sequence of one or more keys;and in response to determining that the gesture includes the at least one feature associated with cancellation, omitting the selected sequence of one or more keys from input into a text input field;
[0075] Example 14. The computer-readable storage medium of Example 13, wherein the at least one feature associated with the cancellation comprises a gesture component indicative of a particular location of a graphical user interface rendered on the presence-sensitive display, and wherein the computer-readable storage medium is further encoded with instructions executable by at least one processor to: determine that the gesture includes the gesture component indicative of the particular location.
[0076] Example 15. The computer-readable storage medium of any of Examples 13 to 14, further encoded with instructions executable by at least one processor to perform the method of any of Examples 3 to 8.
[0077] Fig. 6 is a block diagram illustrating an example computing device that outputs graphical content for display on a remote display device, according to one or more techniques of the present disclosure. Graphical content may generally include any visual information that can be output for display, such as text, images, a group of moving images, etc. The Fig. 6 includes a computing device 400, a presence-sensitive display 401, a communication unit 410, a projector 420, a projector screen 422, a tablet device 426, and a visual display device 430. The computing device 400, the projector 420, the projector screen 422, the tablet device 426, and / or the visual display device 430 of Fig. 6 may include an implementation of the computer device 10 from Fig. 1 to 4. Although in the Fig. 1 to 4 as a freestanding computing device 10 for the purpose of example, a computing device of the present disclosure may generally be any component or system that includes a processor or other suitable computing environment for executing software instructions and need not, for example, include a presence-sensitive display.
[0078] As in the example of Fig. 6, the computing device 400 may be a processor or a set of processors (e.g., a multi-core processor, a chipset, a randomly distributed group of processors that are at least temporarily communicatively coupled, etc.) that may perform functionality as described with respect to the processors 200 of Fig. 2. In such examples, the computing device 400 may be operatively coupled to an input and / or output device, such as the presence-sensitive display 401, via a communication channel 407, which may be a system bus, a communication structure, or other suitable connection from any near or remote location. The computing device 400 may also be operatively coupled to the communication unit 410, as described in more detail below, via a communication channel 409, which may also be a system bus or other suitable connection. Although in the example of Fig. 6, the computing device 400 may be at least temporarily coupled to the presence-sensitive display 401 and the communication unit 410 through any number of one or more communication channels.
[0079] In other examples, such as those previously described with the computing device 10 in Fig. 1 to 4, the computing device 400 may be an integrated device or system that includes one or more processors and an input and / or output device, such as the presence-sensitive display 401, as integrated or otherwise operatively coupled components of the computing device 400. In such examples, one or more processors of the computing device 400 may provide functionality as described with respect to the processors 200 of Fig. 2 and receive data from or send data to the presence-sensitive display component of the computing device 400. In various examples, the computing device 400 may be or include a portable or mobile device, such as a mobile phone (e.g., a smartphone), a tablet computer, a laptop computer, etc. In other examples, the computing device 400 may be or include a desktop computer, a tablet computer, a smart TV platform, a camera, a game console, a personal digital assistant (PDA), a host computer, a data center, a real or virtual server, one or more devices executing on a virtual server, etc. In other examples, the computing device 400 may be both a local device that includes one or more processors and an input and / or output device (e.g.,a presence-sensitive display), and one or more processors operatively connected to, but separate or remote from, the local device or the input and / or output device.
[0080] The presence-sensitive display 401, as shown in Fig. 6, an implementation of the presence-sensitive display 12 as shown in the Fig. 1 to 4. The presence-sensitive display 401 may include a display device 403 and a presence-sensitive input device 405. The display device 403 may, for example, receive data encoding graphical content from the computing device 400 and display the graphical content. In some examples, the presence-sensitive input device 405 may determine one or more user inputs (e.g., continuous gestures, multi-touch or non-contact multi-cue gestures, single-touch or non-contact single-cue gestures, etc.) on the presence-sensitive display 401. In some examples, the presence-sensitive input device 405 may be physically positioned adjacent (e.g., in a transparent overlay) to the display device 403. As previously described with reference to the Fig. 1 and Fig. 2, the presence-sensitive input device 405 may be configured to detect touch gesture inputs and / or contactless gesture inputs using visual, infrared, audible, remote capacitance, or other types of signals using capacitive, inductive, optical sensing, and / or other techniques. The presence-sensitive input device 405 may send indications of such contact or contactless user input gestures to the computing device 400 using the communication channel 407. When a user makes an input gesture that indicates the location of a graphical element displayed by the display device 403, the presence-sensitive input device 405 may detect that the input gesture indicates the location of the display device 403 where the graphical element is displayed.
[0081] As in Fig. 6, the computing device 400 may also include and / or be operatively coupled to a communication unit 410. The communication unit 410 may provide functionality of the communication units 216, including the network interface 204, as described with reference to Fig. 2. Examples of the communication unit 410 may include a network interface card, an Ethernet card, an optical transceiver, a radio frequency transceiver, or any other type of device that can send and receive information. Other examples of such communication units may include Bluetooth, 3G and WiFi radios, Universal Serial Bus (USB) interfaces, etc. The computing device 400 may also include and / or be operatively coupled to one or more other devices (e.g., input devices, output devices, memory, storage devices, etc.), which for the purpose of brevity and clarity are not shown in Fig. 6 are not shown.
[0082] Fig. 6 also shows a projector 420 and a projector screen 422. Other such examples of projection devices may include electronic whiteboards, holographic displays, portable displays, and any other suitable devices for displaying graphical content. The projector 420 and / or the projector screen 422 may include one or more communication units that enable the respective devices to communicate with the computing device 400. In some examples, the one or more communication units may enable communication between the projector 420 and the projector screen 422. The projector 420 may receive data from the computing device 400 that encodes graphical content. The projector 420 may project the graphical content onto the projector screen 422 in response to receiving the data. In some examples, the projector 420 may receive one or more user inputs (e.g.,continuous gestures, multi-touch or contactless multi-cue gestures, single-touch or contactless single-cue gestures, etc.) on the projector screen 422 or near or within a detection range of the projector 420 or the projector screen 422 using optical recognition or other suitable techniques and send indications of such user input to the computing device 400 using one or more communication units.
[0083] The projector screen 422 may, in some examples, include a presence-sensitive display 424. The presence-sensitive display 424 may include a subset of functionality or all of the functionality of the presence-sensitive display 12 as described in the present disclosure. In some examples, the presence-sensitive display 424 may include additional functionality. The projector screen 422 (e.g., an electronic whiteboard) may receive data encoding graphical content from the computing device 400 and display the graphical content. In some examples, the presence-sensitive display 424 may support one or more user inputs (e.g., continuous gestures, multi-touch gestures, single-touch gestures, etc.).) on, near, or within a detection range of the projector screen 422 using capacitive, inductive, and / or optical sensing techniques and send indications of such user input to the computing device 400 using one or more communication units.
[0084] Fig. 6 also shows the tablet device 426 and the visual display device 430. The tablet device 426 and the visual display device 430 may each include computing and connectivity capabilities. Examples of the tablet device 426 may include e-reader devices, convertible notebook devices, hybrid slate devices, etc. Examples of the visual display device 430 may include televisions, computer monitors, etc. As shown in Fig. 6, the tablet device 426 may include a presence-sensitive display 428. The visual display device 430 may include a presence-sensitive display 432. The presence-sensitive displays 428, 432 may include a subset of functionality or all of the functionality of the presence-sensitive display 12 as described in the present disclosure. In some examples, the presence-sensitive displays 428, 432 may include additional functionality. For example, the presence-sensitive display 432 may receive data encoding graphical content from the computing device 400 and display the graphical content. In some examples, the presence-sensitive display 432 may support one or more user inputs (e.g., continuous gestures, multi-touch or contactless multi-cue gestures, single-touch or contactless single-cue gestures, etc.).) on, near, or within a sensing area of the projector screen using capacitive, inductive, and / or optical sensing techniques; and send indications of such user input to the computing device 400 using one or more communication units.
[0085] As described above, in some examples, computing device 400 may output graphical content for display on presence-sensitive display 401 coupled to computing device 400 via a system bus or other suitable communication channel. Computing device 400 may also output the graphical content for display on one or more remote devices, such as projector 420, projector screen 422, tablet device 426, and visual display device 430. For example, computing device 400 may execute one or more instructions to generate and / or modify graphical content according to techniques of the present disclosure. Computing device 400 may output the data encoding the graphical content to a communication unit of computing device 400, such as communication unit 410.Communication unit 410 may send the data to one or more of the remote devices, such as projector 420, projector screen 422, tablet device 426, and / or visual display device 430. In this way, computing device 400 may output the graphical content for display on one or more of the remote devices. In some examples, one or more of the remote devices may output the graphical content on a presence-sensitive display included in and / or operatively coupled to the respective remote device.
[0086] In some examples, computing device 400 may not output graphical content to presence-sensitive display 401 operatively coupled to computing device 400. In other examples, computing device 400 may output graphical content for display both on presence-sensitive display 401 coupled to computing device 400 via communication channel 407 and to one or more remote devices. In such examples, the graphical content may be displayed substantially simultaneously on each respective device. For example, some delay may be introduced by communication latency to send the data containing the graphical content to the remote device.In some examples, graphical content generated by computing device 400 and output for display on presence-sensitive display 401 may be different from graphical content output for display on one or more remote devices.
[0087] Computing device 400 may send and receive data using any suitable communication techniques. For example, computing device 400 may be operatively coupled to network 414 using network link 412A. Each of the Fig. 6 may be operatively coupled to the network 414 through one of the respective network links 412B, 412C, and 412D. The network 414 may include network hubs, network switches, network routers, etc., which are operatively connected to one another, thereby facilitating the exchange of information between the computing device 400 and the Fig. 6. In some examples, network links 412A through 412D may include Ethernet, Asynchronous Transfer Mode (ATM), or other network connections. Such connections may include wireless and / or wired connections. Computing device 400 (e.g., all or a portion of a real or virtual server, a data center, etc.) may be connected to the Fig. 6 may be operatively coupled via the network 414 from any location, either near or far.
[0088] In some examples, the computing device 400 may be connected to one or more of the Fig. 6 may be operatively coupled using direct device communication 418. The direct device communication 418 may include communications by which the computing device 400 sends or receives data directly to or from a remote device using wired or wireless communication. That is, in some examples of direct device communication 418, data sent by the computing device 400 may not be forwarded by one or more additional devices before being received at the remote device, and vice versa. Examples of direct device communication 418 may include Bluetooth, near-field communication (NFC), Universal Serial Bus (USB), WiFi, Wi-Fi, infrared, etc. One or more of the Fig. The remote devices shown in Figure 6 may be operatively coupled to the computing device 400 through communication links 416A through 416D. In some examples, communication links 412A through 412D may be connections using Bluetooth, NFC, USB, Wi-Fi, Wi-Gig, infrared, etc. Such connections may include wireless and / or wired connections.
[0089] According to techniques of the disclosure, computing device 400 may be operatively coupled to projector 420, projector screen 422, tablet device 426, and / or visual display device 430 using network 414 and / or direct device communication 418. Computing device 400 may output a graphical user interface containing different graphical content on presence-sensitive display 424 of projector screen 422, presence-sensitive display 428 of tablet device 426, and / or presence-sensitive display 432 of visual display device 430.Computing device 400 may send data implementing a graphical keyboard equipped with gesture cancellation features to be output to presence-sensitive display 424 of projector screen 422, presence-sensitive display 428 of tablet device 426, and / or presence-sensitive display 432 of visual display device 430 (collectively, "presence-sensitive displays 424, 428, 432"), wherein gesture cancellation features are based at least in part on receiving indications from user input gestures indicating cancellation of previous gesture inputs, in accordance with one or more aspects of the present disclosure. The presence-sensitive displays 424, 428, 432 are illustrative of any one or more presence-sensitive displays from an arbitrary number of any type of device that may be operatively coupled to the computing device 400.
[0090] In these examples, Fig. 6, computing device 400 may receive an indication of a user input gesture detected at a presence-sensitive display (e.g., presence-sensitive display 424 of projector screen 422, presence-sensitive display 428 of tablet device 426, and / or presence-sensitive display 432 of visual display device 430) operatively coupled to computing device 400, such that the user input gesture comprises a movement relative to the presence-sensitive display. Presence-sensitive displays 424, 428, 432 may be operatively coupled to computing device 400 via network 414 or via direct device communication 416, as previously described.The projector 420, the projector screen 422, the tablet device 426, and / or the visual display device 430 may transmit data containing an indication of a user input gesture, including a gesture cancellation feature, detected at the presence-sensitive displays 424, 428, 432, respectively, to the communication unit 410 via the network 414 and / or direct device communication 418. The communication unit 410 may receive the data including the indication of the gesture and communicate this data to the computing device 400. In other examples, another presence-sensitive input device operatively coupled to the computing device 400, such as the presence-sensitive input device 405, may remotely detect a user input gesture of a user interacting with the projector screen 422, the tablet device 426, and / or the visual display device 430.The presence-sensitive input device 405 may send data containing an indication of a user input gesture, including a gesture cancellation feature, detected at the presence-sensitive input device 405 to the computing device 400.
[0091] Computing device 400 may thus receive data containing an indication of a user input gesture, including a gesture cancellation feature, detected at a presence-sensitive input device. Computing device 400 (e.g., computing device 10 or one or more processors forming part or all of computing device 10), while including a gesture cancellation module (e.g., gesture cancellation module 122 described above with reference to Fig. 1 and Fig. 2), determine, based at least in part on the indication of the gesture, that the gesture includes at least one feature associated with cancellation of the selected sequence of one or more keys (e.g., gesture cancellation features 21, 321, 323). In response to determining that the gesture includes the at least one feature associated with cancellation, the computing device 400 may omit the selected sequence of one or more keys from input into a text input field (e.g., text input field 17) to be output on one or more of the presence-sensitive displays 424, 428, 432.
[0092] Computing device 400 may then send data encoding a graphical user interface (e.g., GUI 11) containing gesture cancellation features to projector 420, projector screen 422, tablet device 426, and / or visual display device 430 for output on presence-sensitive displays 424, 428, and / or 432, respectively. For example, computing device 400 may send this data to communications unit 410. Communications unit 410 may then send the data to projector 420, projector screen 422, tablet device 426, and / or visual display device 430 via network 414 and / or direct device communication 418. The projector 42, the projector screen 422, the tablet device 426, and / or the visual display device 430 may then output the graphical user interface modified according to gesture cancellation features to the presence-sensitive displays 424, 426, and / or 432, respectively.
[0093] Various techniques described herein may be implemented as software written in any of a variety of languages using any of a variety of tool sets, structures, APIs, programming environments, virtual machines, libraries, and other computing resources, as indicated above. For example, software code may be written in C, C++, Go, Python, Ruby, JavaScript, Dart, Clojure, assembly language, machine code, or any other language. As a specific illustrative example, aspects of the disclosure discussed above may be implemented in a software module written in a high-level programming language and that may be executed, for example, on the virtual machine 198 of Fig. 2 is executable.
[0094] Aspects of the disclosure may also be applicable and implemented in any computing device or operating system, and may utilize any other APIs, structures, or tool sets. Aspects described herein for implementing a graphical keyboard with gesture cancellation may interact with any other data storage or application. When implemented as software or firmware, various techniques disclosed herein may be implemented, at least in part, by a computer-readable data storage medium including instructions that, when executed, cause a processor to perform one or more of the methods described above. For example, the computer-readable data storage medium may store such instructions for execution by a processor.
[0095] A computer-readable medium may form part of a computer program product, which may include packaging material. A computer-readable medium may include a computer data storage medium, such as random access memory (RAM), read-only memory (ROM), non-volatile random access memory (NVRAM), electrically erasable programmable read-only memory (EEPROM), flash memory, magnetic or optical data storage media, and the like. In various examples, an article of manufacture may include one or more computer-readable storage media.
[0096] In various examples, the data storage devices and / or memories may include computer-readable storage media, including non-transitory media. The term "non-transitory" indicates that the storage medium is not implemented in a carrier wave or propagated signal. In certain examples, a non-transitory storage medium may store data that may change over time (e.g., in RAM or cache). Data storage devices may include any of various forms of volatile memory, which may require periodic electrical refreshing to maintain data in memory, whereas those skilled in the art will recognize that this also constitutes an example of a physical, tangible, non-transitory computer-readable data storage device.Executable instructions may be stored on a non-transitory medium when program code is loaded, stored, forwarded, buffered, or cached on a non-transitory physical medium or device, including when doing so only for a short time or only in a volatile memory format. In some examples, executable instructions may not be permanently stored in the local data storage contained in a computing device and may be temporarily received from an external resource, such as a web service, data center, and / or other server-side resource, but those executable instructions may still be buffered, cached, or otherwise temporarily stored in buffer memory, cache memory, processor registers, or other temporary memory contained in the computing device.In these examples, the computing device may still include a computer-readable storage medium on which the executable instructions are stored, even if only temporarily.
[0097] Machine-readable code may be stored on the data storage devices and / or memory and may include executable instructions executable by at least one processor. "Machine-readable code" and "executable instructions" may refer to any form of software code, including machine code, assembly instructions or assembly language, bytecode, software code written in C, or software code written in any other high-level programming language that can be compiled or translated into executable instructions executable by at least one processor, including software code written in languages that treat code as data to be processed or that enable code to manipulate or generate code.
[0098] The code or instructions may be software and / or firmware executed by processing circuitry, including one or more processors, such as one or more digital signal processors (DSPs), general-purpose microprocessors, application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), or other integrated or discrete logic circuits. Accordingly, the term "processor," as used herein, may refer to any of the foregoing structures or any other structure suitable for implementing the techniques described herein. Additionally, in some aspects, functionality described in the present disclosure may be provided within software modules or hardware modules.
[0099] The different versions described above and in Fig. 1 to 6, as well as additional embodiments, are within the scope of one or more of the following claims.
Claims
[1] Method (300) comprising: Outputting (302), by means of a computing device (10) and for display on a presence-sensitive display, a graphical user interface (11) comprising a text input field (17), an input candidate field (15), and a graphical keyboard (13) including a group of keys, each key in the group of keys being associated with a respective different region of the presence-sensitive display; Receiving (304) by the computing device (10) an indication of a continuous gesture to select a sequence of one or more keys in the group of keys of the graphical keyboard (13) by a first part of the continuous gesture; Determining (306), by the computing device (10) and based at least in part on the indication of the continuous gesture, that the continuous gesture includes a second portion having at least one feature associated with a cancellation of the selected sequence of one or more keys of the first portion, the at least one feature indicating the continuous gesture continuing in an upward direction from the graphical keyboard (13) into the input candidate field (15) before terminating in the text input field (17); and in response to determining that the continuous gesture in the second part includes the at least one feature associated with cancellation, omitting (308), by the computing device (10), the selected sequence of one or more keys from an input into the text input field (17). [2] The method of claim 1, wherein the at least one feature associated with the cancellation comprises a gesture component indicative of a particular location of a graphical user interface (11) output on the presence-sensitive display, and wherein determining that the gesture includes the at least one feature associated with the cancellation further comprises: Determining, by means of the computing device, that the gesture includes the gesture component that indicates the particular location. [3] The method of any one of claims 1 to 2, wherein the at least one feature associated with the cancellation comprises a gesture component having a particular shape, and wherein determining that the gesture includes the at least one feature associated with the cancellation further comprises: Determining, by means of the computing device (10), that the gesture includes the gesture component having the particular shape. [4] The method of any one of claims 1 to 3, wherein the at least one feature associated with the cancellation comprises a gesture component having a particular path over time, and wherein determining that the gesture includes the at least one feature associated with the cancellation further comprises: Determining, by means of the computing device (10), that the gesture includes the gesture component having the determined path over time. [5] A method according to any one of claims 1 to 4, wherein the gesture includes an initial gesture component for selecting the sequence of one or more keys corresponding to at least one potential word, wherein the at least one feature associated with the cancellation comprises, after the initial gesture component, a subsequent gesture component that is below a probability threshold for selecting, in combination with the initial gesture component, a sequence of letters to complete any potential word. [6] The method of claim 5, wherein determining that the gesture includes the at least one feature associated with the cancellation further comprises: Determining, by means of the computing device (10), that the gesture includes the subsequent gesture component that is below the probability threshold for selecting, in combination with the initial gesture component, a sequence of letters to complete any potential word. [7] The method of any one of claims 5 to 6, wherein determining that the subsequent gesture component is below a probability threshold for selecting, in combination with the initial gesture component, a sequence of letters to complete any potential word comprises processing a path of the gesture using gesture keyboard interpretation tools selected from one or more of: a language model, a neighboring key comparison, and a gesture input motion model. [8] The method of any one of claims 1 to 7, wherein the at least one feature associated with the cancellation comprises a gesture component indicative of a particular path along a graphical user interface (11) output on the presence-sensitive display, and wherein determining that the gesture includes the at least one feature associated with the cancellation further comprises: Determining, by means of the computing device (10), that the gesture includes the gesture component indicating the particular path. [9] A computer device (10) comprising: at least one processor (200); wherein the at least one processor (200) is configured to: outputting, for display on a presence-sensitive display (12), a graphical user interface (11) comprising a text input field (17), an input candidate field (15), and a graphical keyboard (13) containing a group of keys, each key in the group of keys being associated with a respective different region of the presence-sensitive display; receive an indication of a continuous gesture to select a sequence of one or more keys within the group of keys of the graphical keyboard (13) by a first part of the continuous gesture; to determine, based at least in part on the indication of the continuous gesture, that the continuous gesture includes a second part having at least one feature associated with a cancellation of the selected sequence of one or more keys of the first part, the at least one feature indicating the continuous gesture continuing in an upward direction from the graphical keyboard (13) into the input candidate field (15) before terminating in the text input field (17); and in response to determining that the continuous gesture in the second part includes the at least one feature associated with cancellation, omitting the selected sequence of one or more keys from input into the text input field (17). [10] The computing device (10) of claim 9, wherein the at least one feature associated with the cancellation comprises a gesture component indicative of a particular location of a graphical user interface (11) output on the presence-sensitive display, and wherein the at least one processor (200) is further configured to: to determine that the gesture contains the gesture component that indicates the specific location. [11] The computing device (10) of any one of claims 9 to 10, wherein the at least one feature associated with the cancellation comprises a gesture component having a particular shape, and wherein the at least one processor (200) is further configured to: to determine that the gesture contains the gesture component having the particular shape. [12] A computer device (10) according to any one of claims 9 to 11, further comprising means for performing the method according to any one of claims 4 to 8. [13] A computer-readable storage medium encoded with instructions executable by a processor (200) to: outputting, for display on a presence-sensitive display, a graphical user interface (11) comprising a text input field (17), an input candidate field (15), and a graphical keyboard (13) containing a group of keys, each key in the group of keys being associated with a respective different region of the presence-sensitive display; receive an indication of a continuous gesture to select a sequence of one or more keys within the group of keys of the graphical keyboard (13) by a first part of the continuous gesture; to determine, based at least in part on the indication of the continuous gesture, that the continuous gesture includes a second part having at least one feature associated with a cancellation of the selected sequence of one or more keys of the first part, the at least one feature indicating the continuous gesture continuing in an upward direction from the graphical keyboard (13) into the input candidate field (15) before terminating in the text input field (17); and in response to determining that the continuous gesture in the second part includes the at least one feature associated with cancellation, omitting the selected sequence of one or more keys from input into the text input field (17). [14] The computer-readable storage medium of claim 13, wherein the at least one feature associated with the cancellation comprises a gesture component indicative of a particular location of a graphical user interface (11) output on the presence-sensitive display, and wherein the computer-readable storage medium is further encoded with instructions executable by at least one processor (200) to: to determine that the gesture contains the gesture component that indicates the specific location. [15] A computer-readable storage medium according to any one of claims 13 to 14, further encoded with instructions executable by the at least one processor (200) to perform the method according to any one of claims 3 to 8.
Citation Information
Patent Citations
A data entry device and method
WO2007017660A2