EP3008554B1 - Modifying input delivery to applications - Google Patents

Modifying input delivery to applications Download PDF

Info

Publication number
EP3008554B1
EP3008554B1 EP13771316.0A EP13771316A EP3008554B1 EP 3008554 B1 EP3008554 B1 EP 3008554B1 EP 13771316 A EP13771316 A EP 13771316A EP 3008554 B1 EP3008554 B1 EP 3008554B1
Authority
EP
European Patent Office
Prior art keywords
input
receiver module
modifying
modification
metadata
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
EP13771316.0A
Other languages
German (de)
English (en)
French (fr)
Other versions
EP3008554A1 (en
Inventor
David Abzarian
Hirofumi Yamamoto
Youlian SIMIDJIYSKI
Alex G. Snitkovskiy
Ramachandran Gurumoorthy
Rouella J. MENDONCA
Kelli Marie ZIELINSKI
Alice Tang
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of EP3008554A1 publication Critical patent/EP3008554A1/en
Application granted granted Critical
Publication of EP3008554B1 publication Critical patent/EP3008554B1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/02Input arrangements using manually operated switches, e.g. using keyboards or dials
    • G06F3/023Arrangements for converting discrete items of information into a coded form, e.g. arrangements for interpreting keyboard generated codes as alphanumeric codes, operand codes or instruction codes
    • G06F3/0233Character input methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/02Input arrangements using manually operated switches, e.g. using keyboards or dials
    • G06F3/023Arrangements for converting discrete items of information into a coded form, e.g. arrangements for interpreting keyboard generated codes as alphanumeric codes, operand codes or instruction codes
    • G06F3/0233Character input methods
    • G06F3/0237Character input methods using prediction or retrieval techniques

Definitions

  • Input devices are used to provide information to a variety of software applications running on computing systems.
  • keyboards are often used to provide input for word processor applications, spreadsheet applications, database applications, internet applications, etc.
  • input from a keyboard is routed through an operating system and then to the software application.
  • a device driver associated with the keyboard may receive the input and route the input to the application.
  • the software application may then perform additional processing of the input. For example, an application may correct a misspelled word or may perform an action in response to a key character combination. Due to the large amount of software applications that exist today and the different types of data provided by various input devices, there are many different ways that applications process input.
  • US 2011/0193797 A1 discloses various examples of input systems having spell-check and automatic correction. For instance, one of them is based on a trace technology, wherein user input is received that specifies a continuous traced path across a keyboard presented on a touch sensitive display. A correction software running on a CPU uses this input to compute an input sequence, including traced keys and auxiliary keys proximate to the traced keys by prescribed criteria. For each of one or more candidate entries of a prescribed vocabulary, a set-edit-distance metric is computed between said input sequence and the candidate entry. Various rules specify when penalties are imposed, or not, in computing the set-edit-distance metric. Candidate entries are ranked and displayed according to the computed metric.
  • Some examples described herein provide for modifying input before delivering the input to applications.
  • input received from an input device such as a keyboard
  • a component associated with an operating system before the input is delivered to an application.
  • a component associated with the operating system may become registered for modifying input.
  • the input is modified based at least in part on metadata associated with the input device. For example, a location of a fingertip on a touch-sensitive input device may be used to modify the input before delivery to an application.
  • input can by any type of information that is created based upon an input device.
  • input can be one or more characters or a representation of one or more characters that is received from an input device and is to be delivered to an application.
  • a user may cause one or more characters to be sent to an application by touching one or more keys or locations on a keyboard or other touch sensitive input device.
  • An application can be a software program executing on a computer system, such as a word processor applications, spreadsheet applications, database applications, internet applications, etc.
  • an input device such as a keyboard or other touch sensitive input device
  • an input modifying component associated with an operating system before the input is delivered to an application.
  • an input device or keyboard can include a touch sensitive surface (e.g., digitizer surface), a standard physical keyboard, a low profile or slim keyboard, an interactive display or interface, or any other type of touch sensitive device capable of providing touch based input (e.g., for delivery to an application).
  • the input modifying component may become registered for modifying the input or otherwise assigned for modifying the input.
  • input from a keyboard can be received by a device driver, such as an HID (human interface device) class driver of the operating system, and then delivered to a component of the operating system, such as a kernel component.
  • a device driver such as an HID (human interface device) class driver of the operating system
  • the input is delivered to the registered input modifying component, modified, and then delivered back to the kernel component.
  • the kernel component then delivers the modified input to the application.
  • the input is modified based at least in part on metadata associated with the input device. For example, a location of a fingertip on a touch-sensitive display may be used to modify the input before delivery to an application. Thus, if the metadata indicates that the fingertip contact was within a threshold distance of a shift key, then an associated character may be changed to uppercase before the character is delivered to an application.
  • a user may disable modifying of input before delivery to an application, which prevents the input modifying component from modifying the input.
  • a user may disable the use or the delivery of metadata by the input modifying component.
  • the user may disable the use or the delivery of a subset of the metadata, while enabling the use or the delivery of another subset of the metadata.
  • the user may enable or disable certain types of input modification, such as auto-correction, text suggestion, and other predictive user interface features.
  • FIG. 1 is a block diagram illustrating an example environment 100 including select components for modifying input delivery to an application according to some implementations.
  • the environment 100 can include various modules and functional components for performing the functions described herein.
  • the environment 100 includes an input device 102.
  • the input device 102 can comprise any type of device capable of providing input to a computing system or application, such as a keyboard, touch-sensitive keyboard, mouse, etc.
  • the environment 100 includes a device driver 104, which can comprise any type of device driver capable of interfacing and receiving input from the input device 102.
  • the device driver 104 is an HID class driver.
  • the device driver 104 is a component of a kernel of a host computer system that receives input from the input device 102.
  • the kernel may be a protected area of memory and may be associated with a higher level of trust than other areas of memory.
  • the input receiver module 106 is a module or component of an operating system of the host computer system that receives the input from the device driver 104. In some implementations, the input receiver module 106 converts the input into one or more scan codes or hot keys. Furthermore, in some implementations, the receiver module 106 is a part of the kernel of the host computer system.
  • the input modification module 108 is a module or component associated with the operating system of the host computer system that receives the input from the input receiver module 106, modifies the input, and delivers the modified input back to the input receiver module 106.
  • the input modification module 108 performs at least one of: correcting an error in the input, providing a suggestion associated with the input, removing one or more input characters from the input, replacing one or more input characters of the input, and adding one or more input characters to the input.
  • the input receiver module 106 then delivers the modified input to an application 110.
  • the application 110 requests or pulls the modified input from the input receiver module 106.
  • the functions performed by the device driver 104, the input receiver module 106, and the input modification module 108 along with other functions, can be performed by one module or by any larger number of modules.
  • the input receiver module 106 sends a request or query to input device 102 directly or through the device driver 104.
  • the request or query may include a request for information regarding capabilities of the input device 102.
  • the capabilities of the input device may include the ability to provide metadata associated with the input, a probability of an input value, a position of at least one finger, and a size of the input device 102.
  • FIG. 2 is a block diagram illustrating a representative host device 200 that can modify input delivery to an application.
  • the host device 200 can be a computer, server, client system, laptop, mobile device, or any other computing system suitable for being used as a host for interacting with the input device 102.
  • the host device 200 shown in FIG. 2 is only one example of a computing device and is not intended to suggest any limitation as to the scope of use or functionality of the computer and associated architectures.
  • the host device 200 includes one or more processors 204 and one or more computer-readable media 204 that includes the operating system 206, the application 110 and the input modification module 108.
  • the operating system 206 includes the device driver 104 and the kernel 208, which includes the input receiver module 106.
  • the operating system 206 includes the input modification module 108.
  • the kernel 208 includes the input modification module 108.
  • the input modification module 108 may exist in different portions of computer readable media 204, as long as the input modification module 108 can send data to and receive data from the input receiver module 106.
  • the input receiver module 106 is associated with a higher trust level than the input modification module 108.
  • the input receiver module 106 is associated with a kernel mode and the input modification module 108 is associated with a user mode.
  • the input receiver module 106 registers the input modification module 108 in response to identifying at least one attribute associated with the input device 102, a user or a session. In some implementations, the input modification module 108 registers itself with the input receiver module 106 in response to identifying at least one attribute associated with the input device 102, a user or a session.
  • the attribute can be a size of the input device 102, a type of the input device 102, a capability of the input device 102 to provide one or more types of metadata related to the input 216, a request by the user for modification of the input 216, or a request for the input 216 to be modified during the session.
  • the input receiver module 106 provides the input 216 to the input modification module 108 in response to a blocking call.
  • one or more additional input modification modules 108 are associated or registered for modifying the input 216.
  • a priority is assigned to each of the one or more additional input modification modules 108.
  • the priorities may be assigned by one of the input modification modules 108, each of the input modification modules 108, or by the input receiver module 106.
  • modifying the input 216 may occur in one or more of the input modification modules 108 based on the priorities.
  • a threshold number of the input modification modules 108 may be used, based on the priorities.
  • only the threshold number of input modification modules 108 are assigned for input modification, starting from the highest priority modules and proceeding to lower priority modules.
  • the priorities may be assigned or changed based on at least one attribute associated with the input device 102, a user, or a session.
  • the host device 200 also includes one or more output devices 210, storage 222, and one or more communication connections 214.
  • the input modification module 108 includes the input 216 from the input device 102 and the input metadata 218 associated with the input 216, either or both of which are used to create the modified input 220 for the application 110.
  • the input 216 includes at least one or more characters entered at the input device 102.
  • a character can be a letter, number, or any other symbol capable of being input using the input device 102 or capable of being input into the application 110.
  • the above components of the host device 200 are able to communicate through a system bus or other suitable connection.
  • the processor 202 is a microprocessing unit (MPU), a central processing unit (CPU), or other processing unit or component known in the art.
  • the processor 202 can be configured to fetch and execute computer-readable processor-accessible instructions stored in the computer-readable media 108 or other computer-readable storage media.
  • Communication connections 214 allow the device to communicate with other computing devices, such as over a network. These networks can include wired networks as well as wireless networks.
  • Computer storage media includes volatile and non-volatile, removable and non-removable media implemented in any method or technology for storage of information, such as computer-readable instructions, data structures, program modules, or other data.
  • Computer storage media includes, but is not limited to, random access memory (RAM), read only memory (ROM), electrically erasable programmable ROM (EEPROM), flash memory or other memory technology, compact disk ROM (CD-ROM), digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to store information for access by a computing device.
  • communication media can embody computer-readable instructions, data structures, program modules, or other data in a modulated data signal, such as a carrier wave.
  • computer storage media does not include communication media.
  • Computer-readable media 204 can include various modules and functional components for enabling the host device 200 to perform the functions described herein.
  • computer-readable media 108 can include the device driver 104, input receiver module 106 and the input modification module 108 for modifying input delivery to the application 110.
  • the device driver 104, input receiver module 106 and the input modification module 108 can include a plurality of processor-executable instructions, which can comprise a single module of instructions or which can be divided into any number of modules of instructions.
  • Such instructions can further include, for example, drivers for hardware components of the host device 100.
  • the device driver 104, input receiver module 106 and/or the input modification module 108 can be entirely or partially implemented on the host device 200. Although illustrated in FIG. 2 as being stored in computer-readable media 204 of host device 200, the device driver 104, input receiver module 106 and the input modification module 108, or portions thereof, can be implemented using any form of computer-readable media that is accessible by the host device 200. In some implementations, the device driver 104, input receiver module 106 and/or the input modification module 108 are implemented partially on another device or server.
  • computer-readable media 204 can include other modules, such as other device drivers, program data, and the like, as well as data used by the input modification module 108 and other modules (e.g., the input 216, the input metadata 218 and the modified input 220).
  • Computer-readable media 204 or other machine-readable storage media stores one or more sets of instructions (e.g., software) embodying any one or more of the methodologies or functions described herein.
  • the instructions can also reside, completely or at least partially, within the computer-readable media 204 and within the processor 202 during execution thereof by the host device 200.
  • the program code can be stored in one or more computer-readable memory devices or other computer-readable storage devices, such as computer-readable media 204.
  • FIG. 3 illustrates an example of modifying input delivery to an application according to some implementations.
  • the input 302 and the input 304 are input to the host device 200 using input device 102.
  • the input 302 and the input 304 are each examples of the input 216 of FIG. 2 .
  • the input 302, the input 304 and the modified input 220 are presented on the output device 210, which can be a display, monitor or other device suitable for presenting graphical output.
  • the output device 210 can be a display, monitor or other device suitable for presenting graphical output.
  • one or more of the input 302, the input 304 and the modified input 220 are not presented on an output device, but are still delivered to the application 110.
  • the input 302 includes the characters "yesterday I hel," which is delivered to the input modification module 108.
  • the input modification module 108 modifies the input 302 based on analyzing the input. Analyzing the input 302 can include analyzing context and relationships between two or more characters of the input 302.
  • the input modification module 108 modifies the input 302 to create the modified input 220 by changing a "y" character to "Y” and adding the characters "ped" to the input 302.
  • the input modification module 108 performed auto-correction and added new characters to the input 302 based on analyzing the input 302.
  • the input 304 includes the characters "yesterday I helpr," which is delivered to the input modification module 108.
  • the input modification module 108 modifies the input 304 based on analyzing the input. Analyzing the input 304 can include analyzing context and relationships between two or more characters of the input 304.
  • the input modification module 108 modifies the input 304 to create the modified input 220 by changing a "y" character to "Y,” removing the character "r” and adding the characters "ed” to the input 304.
  • the input modification module 108 performed auto-correction and added new characters to the input 304 based on analyzing the input 304.
  • the input modification module 108 modifies at least part of the input 216. For example, the input modification module 108 can correct an error in the input, provide a suggestion associated with the input, remove one or more input characters from the input, replace one or more input characters of the input, and add one or more input characters to the input. Furthermore, in some implementations, the input modification module 108 also receives the metadata 218 associated with the input device and modifies at least part of the input 216 based on the metadata 218.
  • the metadata 218 can be at least one of a probability of an input value, a position of at least one finger, and a size of the input device.
  • the probability of the input value can be determined and used to modify the input 216. For example, a probability of a user intending to enter a particular character may be greater than a probability of the user intending to enter another character, based on the detecting.
  • other factors can be used in combination with the detection to modify the input 216. For example, contextual analysis can be factored into a determination of whether and how to modify the input 216.
  • each block represents one or more operations that can be implemented in hardware, software, or a combination thereof.
  • the blocks represent computer-executable instructions that, when executed by one or more processors, cause the processors to perform the recited operations.
  • computer-executable instructions include routines, programs, objects, components, data structures, and the like that perform particular functions or implement particular abstract data types.
  • the order in which the blocks are described is not intended to be construed as a limitation, and any number of the described operations can be combined in any order and/or in parallel to implement the process. While several examples are described herein for explanation purposes, the disclosure is not limited to the specific examples, and can be extended to additional devices, environments, applications and settings. For discussion purposes, the processes below are described with reference to the environment 100 of FIG. 1 , although other devices, systems, frameworks, and environments can implement this process.
  • FIG. 4 is a flow diagram of an example process 400 of modifying input delivery to an application according to some implementations.
  • the input receiver module 106 determines whether modifying input delivery to the application 110 is enabled. In some implementations, the steps are performed by another component of the host device 200, such as the input modifier module 108.
  • the input receiver module 106 determines whether the input device 102 is capable of providing input metadata 218. If the input receiver module 106 determines that the input device 102 is capable of providing input metadata 218, then at step 406, the input receiver module 106 registers one or more input modification modules 108 for modifying the input 216.
  • the input receiver module 106 receives the input 216 and the input metadata 218.
  • the device driver 106 receives the input 216 and the input metadata 218 before delivering the input 216 and the input metadata 218 to the input receiver module 106.
  • the input receiver module 106 sends the input 216 and the input metadata 218 to the one or more input modification modules.
  • the input modification module 108 modifies the input 216 based on analyzing the input 216 and based on the input metadata 218.
  • the input receiver module 106 determines whether the modified input 220 is received within a threshold amount of time.
  • the threshold amount of time may be approximately one or more milliseconds or any other amount of time suitable for the application 110.
  • the input receiver module 106 determines that the modified input 220 is received within the threshold amount of time, then at 416, the input receiver module 106 sends the modified input 220 to the application 110. Otherwise, the input receiver module 106 sends the input 216 to the application 110 without modification.
  • the input receiver module 106 determines that the input device 102 is not capable of providing input metadata 218, then at 418, the input receiver module 106 registers one or more input modification modules 108 for modifying the input 216.
  • the input receiver module 106 receives the input 216.
  • the device driver 106 receives the input 216 before delivering the input 216 to the input receiver module 106.
  • the input receiver module 106 sends the input 216 to the one or more input modification modules.
  • the input modification module 108 modifies the input 216 based on analyzing the input 216.
  • the input receiver module 106 determines whether the modified input 220 is received within a threshold amount of time. As discussed above, depending on the determination, the input receiver module 106 sends the modified input 220 or the input 216 to the application 110.
  • FIG. 5 is a flow diagram of an example process 500 of modifying input delivery to an application according to some implementations.
  • the input receiver module 106 registers the input modification module 108.
  • the steps are performed by another component of the host device 200, such as the input modifier module 108.
  • the input receiver module 106 receives the input 216 and the input metadata 218.
  • the device driver 106 receives the input 216 and the input metadata 218 before delivering the input 216 and the input metadata 218 to the input receiver module 106.
  • the input receiver module 106 sends the input 216 and the input metadata 218 to the input modification module 108.
  • the input modification module 108 modifies the input 216 based on at least one of analyzing the input 216 and analyzing the input metadata 218.
  • the input modification module 108 sends the modified input 220 to the input receiver module 106.
  • the input receiver module 106 sends the modified input 220 to the application 110.
  • the input receiver module 106 determines whether there is any more input 216 from the input device 102 for the application 110. If the input receiver module 106 determine that there is more input 216 from the input device 102 for the application 110, then the process returns to 504. Otherwise, the process ends.
  • the example environments, systems and computing devices described herein are merely examples suitable for some implementations and are not intended to suggest any limitation as to the scope of use or functionality of the environments, architectures and frameworks that can implement the processes, components and features described herein.
  • implementations herein are operational with numerous environments or architectures, and can be implemented in general purpose and special-purpose computing systems, or other devices having processing capability.
  • any of the functions described with reference to the figures can be implemented using software, hardware (e.g., fixed logic circuitry) or a combination of these implementations.
  • the processes, components and modules described herein can be implemented by a computer program product.

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • User Interface Of Digital Computer (AREA)
EP13771316.0A 2013-06-13 2013-09-20 Modifying input delivery to applications Active EP3008554B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/917,507 US10088914B2 (en) 2013-06-13 2013-06-13 Modifying input delivery to applications
PCT/US2013/060771 WO2014200536A1 (en) 2013-06-13 2013-09-20 Modifying input delivery to applications

Publications (2)

Publication Number Publication Date
EP3008554A1 EP3008554A1 (en) 2016-04-20
EP3008554B1 true EP3008554B1 (en) 2023-01-18

Family

ID=49293895

Family Applications (1)

Application Number Title Priority Date Filing Date
EP13771316.0A Active EP3008554B1 (en) 2013-06-13 2013-09-20 Modifying input delivery to applications

Country Status (4)

Country Link
US (1) US10088914B2 (zh)
EP (1) EP3008554B1 (zh)
CN (1) CN105378605B (zh)
WO (1) WO2014200536A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11361078B2 (en) * 2018-10-01 2022-06-14 Textron Innovations Inc. Hierarchical integrated trust assessment

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3959775A (en) * 1974-08-05 1976-05-25 Gte Automatic Electric Laboratories Incorporated Multiprocessing system implemented with microprocessors
US5721850A (en) * 1993-01-15 1998-02-24 Quotron Systems, Inc. Method and means for navigating user interfaces which support a plurality of executing applications
CH690030A5 (de) * 1995-01-26 2000-03-31 Fingraf Ag Verfahren und Vorrichtung zur Herstellung einer Druckschablone.
CA2227904C (en) * 1995-07-26 2000-11-14 Tegic Communications, Inc. Reduced keyboard disambiguating system
US6263383B1 (en) 1998-11-23 2001-07-17 Glenn W. Lee Keyboard wedge system configured for data processing over a keyboard hook
US7069586B1 (en) * 2000-04-03 2006-06-27 Software Secure, Inc. Securely executing an application on a computer system
GB0020441D0 (en) * 2000-08-18 2000-10-04 Hewlett Packard Co Performance of a service on a computing platform
US6560559B2 (en) * 2001-08-17 2003-05-06 Koninklijke Philips Electronics N.V. System and method for detecting and correcting incorrect hand position of a computer user
US7296072B2 (en) * 2003-12-12 2007-11-13 International Business Machines Corporation Enhanced port type agnostic proxy support for web services intermediaries
US8200475B2 (en) 2004-02-13 2012-06-12 Microsoft Corporation Phonetic-based text input method
US7809119B2 (en) * 2005-06-09 2010-10-05 At&T Intellectual Property I, L.P. Method and system for blocking incoming calls to mobile subscriber devices
US8225203B2 (en) 2007-02-01 2012-07-17 Nuance Communications, Inc. Spell-check for a keyboard system with automatic correction
US20090058823A1 (en) * 2007-09-04 2009-03-05 Apple Inc. Virtual Keyboards in Multi-Language Environment
US20090265716A1 (en) 2008-04-22 2009-10-22 Siemens Aktiengesellschaft System and method for feature addition to an application
EP2353092A4 (en) * 2008-10-10 2013-11-06 Safend Ltd SYSTEM AND METHOD FOR FAILING A HARDWARE RECORDER
GB0917753D0 (en) 2009-10-09 2009-11-25 Touchtype Ltd System and method for inputting text into electronic devices
US8595740B2 (en) * 2009-03-31 2013-11-26 Microsoft Corporation Priority-based management of system load level
US9020938B2 (en) 2010-02-03 2015-04-28 Yahoo! Inc. Providing profile information using servers
US8830182B1 (en) * 2010-02-09 2014-09-09 Google Inc. Keystroke resolution
US20130050222A1 (en) 2011-08-25 2013-02-28 Dov Moran Keyboard with embedded display
US9270638B2 (en) * 2012-01-20 2016-02-23 Cisco Technology, Inc. Managing address validation states in switches snooping IPv6
US9158914B2 (en) * 2013-04-19 2015-10-13 Crowdstrike, Inc. Executable component injection utilizing hotpatch mechanisms

Also Published As

Publication number Publication date
WO2014200536A1 (en) 2014-12-18
CN105378605A (zh) 2016-03-02
US10088914B2 (en) 2018-10-02
CN105378605B (zh) 2018-10-19
US20140368435A1 (en) 2014-12-18
EP3008554A1 (en) 2016-04-20

Similar Documents

Publication Publication Date Title
US10528663B2 (en) Touch keyboard using language and spatial models
US10489508B2 (en) Incremental multi-word recognition
KR101345320B1 (ko) 예측 가상 키보드
EP3005066B1 (en) Multiple graphical keyboards for continuous gesture input
US10474355B2 (en) Input pattern detection over virtual keyboard for candidate word identification
US20130346904A1 (en) Targeted key press zones on an interactive display
CN105229574A (zh) 减少基于触摸的键盘的错误率
WO2014062358A1 (en) Multi-gesture text input prediction
US8994681B2 (en) Decoding imprecise gestures for gesture-keyboards
WO2017176335A1 (en) Dynamic key mapping of a graphical keyboard
CN113407075B (zh) 图标整理方法、装置和电子设备
EP3008554B1 (en) Modifying input delivery to applications
US20130139085A1 (en) Operation Support Computer Program, Operation Support Computer System
US20230070059A1 (en) False touch rejection method, terminal device, and storage medium
CN104375659A (zh) 一种信息处理方法及电子设备
JP6349705B2 (ja) 語学学習装置、表示方法、およびプログラム

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20151120

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR

AX Request for extension of the european patent

Extension state: BA ME

DAX Request for extension of the european patent (deleted)
STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: EXAMINATION IS IN PROGRESS

17Q First examination report despatched

Effective date: 20200327

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: EXAMINATION IS IN PROGRESS

RAP3 Party data changed (applicant data changed or rights of an application transferred)

Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC

GRAP Despatch of communication of intention to grant a patent

Free format text: ORIGINAL CODE: EPIDOSNIGR1

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: GRANT OF PATENT IS INTENDED

INTG Intention to grant announced

Effective date: 20220524

GRAJ Information related to disapproval of communication of intention to grant by the applicant or resumption of examination proceedings by the epo deleted

Free format text: ORIGINAL CODE: EPIDOSDIGR1

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: EXAMINATION IS IN PROGRESS

GRAP Despatch of communication of intention to grant a patent

Free format text: ORIGINAL CODE: EPIDOSNIGR1

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: GRANT OF PATENT IS INTENDED

INTC Intention to grant announced (deleted)
INTG Intention to grant announced

Effective date: 20220905

RIN1 Information on inventor provided before grant (corrected)

Inventor name: TANG, ALICE

Inventor name: ZIELINSKI, KELLI MARIE

Inventor name: MENDONCA, ROUELLA J.

Inventor name: GURUMOORTHY, RAMACHANDRAN

Inventor name: SNITKOVSKIY, ALEX G.

Inventor name: SIMIDJIYSKI, YOULIAN

Inventor name: YAMAMOTO, HIROFUMI

Inventor name: ABZARIAN, DAVID

GRAS Grant fee paid

Free format text: ORIGINAL CODE: EPIDOSNIGR3

GRAA (expected) grant

Free format text: ORIGINAL CODE: 0009210

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE PATENT HAS BEEN GRANTED

AK Designated contracting states

Kind code of ref document: B1

Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR

REG Reference to a national code

Ref country code: GB

Ref legal event code: FG4D

REG Reference to a national code

Ref country code: DE

Ref legal event code: R096

Ref document number: 602013083232

Country of ref document: DE

REG Reference to a national code

Ref country code: CH

Ref legal event code: EP

REG Reference to a national code

Ref country code: AT

Ref legal event code: REF

Ref document number: 1545052

Country of ref document: AT

Kind code of ref document: T

Effective date: 20230215

Ref country code: IE

Ref legal event code: FG4D

REG Reference to a national code

Ref country code: LT

Ref legal event code: MG9D

REG Reference to a national code

Ref country code: NL

Ref legal event code: MP

Effective date: 20230118

REG Reference to a national code

Ref country code: AT

Ref legal event code: MK05

Ref document number: 1545052

Country of ref document: AT

Kind code of ref document: T

Effective date: 20230118

P01 Opt-out of the competence of the unified patent court (upc) registered

Effective date: 20230512

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: NL

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20230118

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: RS

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20230118

Ref country code: PT

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20230518

Ref country code: NO

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20230418

Ref country code: LV

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20230118

Ref country code: LT

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20230118

Ref country code: HR

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20230118

Ref country code: ES

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20230118

Ref country code: AT

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20230118

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: SE

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20230118

Ref country code: PL

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20230118

Ref country code: IS

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20230518

Ref country code: GR

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20230419

Ref country code: FI

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20230118

REG Reference to a national code

Ref country code: DE

Ref legal event code: R097

Ref document number: 602013083232

Country of ref document: DE

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: SM

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20230118

Ref country code: RO

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20230118

Ref country code: EE

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20230118

Ref country code: DK

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20230118

Ref country code: CZ

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20230118

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: GB

Payment date: 20230823

Year of fee payment: 11

PLBE No opposition filed within time limit

Free format text: ORIGINAL CODE: 0009261

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: NO OPPOSITION FILED WITHIN TIME LIMIT

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: SK

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20230118

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: FR

Payment date: 20230822

Year of fee payment: 11

Ref country code: DE

Payment date: 20230822

Year of fee payment: 11

26N No opposition filed

Effective date: 20231019

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: SI

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20230118

REG Reference to a national code

Ref country code: CH

Ref legal event code: PL

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: LU

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20230920