IP Library Granted Patent US 10,921,975
Granted Patent B2
US 10,921,975 · App. 16/425,828 · Granted Feb 16, 2021

Devices, methods, and user interfaces for conveying proximity-based and contact-based input events

Inventors: Michael T. Turner (San Jose, CA); Raleigh J. Ledet (Lafayette, LA)
Assignee: APPLE INC.
G06F3/0487G06F3/0484
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,921,975
App. No.
16/425,828
Granted
Feb 16, 2021
Kind
B2
Abstract

An electronic device, with a display and an input device separate from the display, displays a user interface that includes a representation of a first application and a pointer object. The device receives, at the input device, a user input event directed to a location in the user interface at which the pointer object is displayed. In response to the user input event, when the respective location in the user interface at which the pointer object is displayed is over the representation of the first application, the device provides, to the first application, information that describes a simulated touch event including information that describes locations of one or more simulated touches in the user interface; and displays, on the display, a change in the representation of the first application that is determined by the first application in response to the information that describes the simulated touch event.

Claims (180)

1. A method, comprising:

at an electronic device with a display and an input device separate from the display:

displaying, concurrently on the display, a user interface that includes:

a representation of a first application that includes a plurality of user interface objects; and

a pointer object;

while concurrently displaying the representation of the first application and the pointer object, receiving, at the input device separate from the display, a user input event directed to a respective location in the user interface at which the pointer object is displayed;

in response to detecting the user input event, in accordance with a determination that the respective location in the user interface at which the pointer object is displayed is over the representation of the first application:

generating a simulated touch event, including information that describes locations of one or more simulated touches in the user interface, based on the user input event;

providing, to the first application, the information that describes the simulated touch event including the information that describes the locations of the one or more simulated touches in the user interface; and

displaying, on the display, a change in the representation of the first application that is determined by the first application in response to the information that describes the simulated touch event.

2. The method of claim 1 , including:

generating a digitized event in accordance with the user input event, the digitized event including the location in the user interface at which the pointer object is displayed,

wherein generating the simulated touch event includes transforming the digitized event into the simulated touch event.

3. The method of claim 2 , wherein the digitized event comprises a pointer event paired with or having location information corresponding to the respective location in the user interface at which the pointer object is displayed.

4. The method of claim 2 ,

wherein the digitized event is generated from a pointer event paired with or having location information corresponding to the respective location in the user interface at which the pointer object is displayed.

5. The method of claim 1 , wherein the simulated touch event includes a plurality of fields having information including location information corresponding to the respective location in the user interface, and a phase value selected from a set of predefined phase values that includes at least a first predefined phase value that indicates a beginning phase of a simulated touch and a second predefined phase value that indicates that the simulated touch event is an update of a prior simulated touch event.

6. The method of claim 5 , wherein the set of predefined phase values includes at least a third predefined phase value that indicates a hover phase, the hover phase indicating a simulated touch proximate to but not in contact with the display.

7. The method of claim 5 , wherein:

the input device includes a button, wherein the button is a physical button;

the user input event includes a change in a state of the button; and

in accordance with the change in the state of the button, the simulated touch event has the first predefined phase value that indicates a beginning phase of a simulated touch.

8. The method of claim 7 , wherein,

the change in the state of the button includes an activation of the button; and,

the method further includes,

while displaying the pointer object, receiving, at the input device separate from the display, a second user input event that includes deactivation of the button; and

in response to detecting the second user input event:

providing, to the first application, information that describes a second simulated touch event having a phase value that indicates that the second simulated touch event corresponds to an end of the simulated touch event.

9. The method of claim 5 , including:

while displaying the pointer object, receiving, at the input device separate from the display, a third user input event that moves the pointer object from the respective location to a third location on the display; and

in response to detecting the third user input event:

providing, to the first application, information that describes a third simulated touch event having the second predefined phase value that indicates that the third simulated touch event is an update of the simulated touch event.

10. The method of claim 1 , including:

while displaying the pointer object, receiving, at the input device separate from the display, a fourth user input event directed to a third location at which the pointer object is displayed, the third location corresponding to a representation of a respective application distinct from the first application; and

in response to detecting the fourth user input event:

in accordance with a determination that the respective application is configured to be executed in a first operating system framework, providing, to the respective application, information that describes a fourth simulated touch event including information that describes locations of one or more additional simulated touches; and

in accordance with a determination that the respective application is not configured to be executed in the first operating system framework, forgoing provision, to the respective application, of information that describes a simulated touch event.

11. The method of claim 1 , wherein the simulated touch event includes information that describes locations of a plurality of simulated touches in the user interface.

12. The method of claim 11 , wherein:

the plurality of simulated touches have a centroid at the respective location in the user interface at which the pointer object is displayed.

13. The method of claim 1 , wherein the input device is selected from the group consisting of:

a mouse;

a scroll wheel;

a keyboard; and

a touchpad separate from the display.

14. The method of claim 1 , wherein the respective location at which the pointer object is displayed corresponds to a plurality of views and the simulated touch event is provided to each view of the plurality of views.

15. The method of claim 1 , wherein:

the input device is a first input device;

the simulated touch event is a normalized touch event having a predefined event type and set of fields; and

the method includes:

receiving, at a second input device, a fifth user input event;

in response to detecting the fifth user input event:

providing, to the first application, information that describes a fifth simulated touch event, the fifth simulated touch event being a normalized touch event.

16. The method of claim 1 , wherein:

the input device is a respective input device of a plurality of input devices separate from the display;

the user input event is a first user input event of a plurality of user input events received from the plurality of input devices separate from the display; and

the method further includes:

generating a plurality of separate event streams in accordance with the plurality of user input events; and

merging information from the plurality of event streams to generate a stream of merged user input events, wherein the information that describes the simulated touch event includes information that describes the stream of merged user input events.

17. An electronic device, comprising:

a display;

an input device separate from the display;

one or more processors;

memory; and

one or more programs, wherein the one or more programs are stored in the memory and configured to be executed by the one or more processors, the one or more programs including instructions for:

displaying, concurrently on the display, a user interface that includes:

a representation of a first application that includes a plurality of user interface objects; and

a pointer object;

while concurrently displaying the representation of the first application and the pointer object, receiving, at the input device separate from the display, a user input event directed to a respective location in the user interface at which the pointer object is displayed;

in response to detecting the user input event, in accordance with a determination that the respective location in the user interface at which the pointer object is displayed is over the representation of the first application:

generating a simulated touch event, including information that describes locations of one or more simulated touches in the user interface, based on the user input event;

providing, to the first application, the information that describes the simulated touch event including the information that describes the locations of the one or more simulated touches in the user interface; and

displaying, on the display, a change in the representation of the first application that is determined by the first application in response to the information that describes the simulated touch event.

18. The electronic device of claim 17 , wherein the one or more programs include instructions for:

generating a digitized event in accordance with the user input event, the digitized event including the location in the user interface at which the pointer object is displayed,

wherein generating the simulated touch event includes transforming the digitized event into the simulated touch event.

19. The electronic device of claim 18 , wherein the digitized event comprises a pointer event paired with or having location information corresponding to the respective location in the user interface at which the pointer object is displayed.

20. The electronic device of claim 18 ,

wherein the digitized event is generated from a pointer event paired with or having location information corresponding to the respective location in the user interface at which the pointer object is displayed.

21. The electronic device of claim 17 , wherein the simulated touch event includes a plurality of fields having information including location information corresponding to the respective location in the user interface, and a phase value selected from a set of predefined phase values that includes at least a first predefined phase value that indicates a beginning phase of a simulated touch and a second predefined phase value that indicates that the simulated touch event is an update of a prior simulated touch event.

22. The electronic device of claim 21 , wherein the set of predefined phase values includes at least a third predefined phase value that indicates a hover phase, the hover phase indicating a simulated touch proximate to but not in contact with the display.

23. The electronic device of claim 21 , wherein:

the input device includes a button, wherein the button is a physical button;

the user input event includes a change in a state of the button; and

in accordance with the change in the state of the button, the simulated touch event has the first predefined phase value that indicates a beginning phase of a simulated touch.

24. The electronic device of claim 23 , wherein,

the change in the state of the button includes an activation of the button; and,

the one or more programs include instructions for:

while displaying the pointer object, receiving, at the input device separate from the display, a second user input event that includes deactivation of the button; and

in response to detecting the second user input event:

providing, to the first application, information that describes a second simulated touch event having a phase value that indicates that the second simulated touch event corresponds to an end of the simulated touch event.

25. The electronic device of claim 21 , wherein the one or more programs include instructions for:

while displaying the pointer object, receiving, at the input device separate from the display, a third user input event that moves the pointer object from the respective location to a third location on the display; and

in response to detecting the third user input event:

providing, to the first application, information that describes a third simulated touch event having the second predefined phase value that indicates that the third simulated touch event is an update of the simulated touch event.

26. The electronic device of claim 17 , wherein the one or more programs include instructions for:

while displaying the pointer object, receiving, at the input device separate from the display, a fourth user input event directed to a third location at which the pointer object is displayed, the third location corresponding to a representation of a respective application distinct from the first application; and

in response to detecting the fourth user input event:

in accordance with a determination that the respective application is configured to be executed in a first operating system framework, providing, to the respective application, information that describes a fourth simulated touch event including information that describes locations of one or more additional simulated touches; and

in accordance with a determination that the respective application is not configured to be executed in the first operating system framework, forgoing provision, to the respective application, of information that describes a simulated touch event.

27. The electronic device of claim 17 , wherein the simulated touch event includes information that describes locations of a plurality of simulated touches in the user interface.

28. The electronic device of claim 27 , wherein:

the plurality of simulated touches have a centroid at the respective location in the user interface at which the pointer object is displayed.

29. The electronic device of claim 17 , wherein the input device is selected from the group consisting of:

a mouse;

a scroll wheel;

a keyboard; and

a touchpad separate from the display.

30. The electronic device of claim 17 , wherein the respective location at which the pointer object is displayed corresponds to a plurality of views and the simulated touch event is provided to each view of the plurality of views.

31. The electronic device of claim 17 , wherein:

the input device is a first input device;

the simulated touch event is a normalized touch event having a predefined event type and set of fields; and

the one or more programs include instructions for:

receiving, at a second input device, a fifth user input event; and

in response to detecting the fifth user input event:

providing, to the first application, information that describes a fifth simulated touch event, the fifth simulated touch event being a normalized touch event.

32. The electronic device of claim 17 , wherein:

the input device is a respective input device of a plurality of input devices separate from the display;

the user input event is a first user input event of a plurality of user input events received from the plurality of input devices separate from the display; and

the one or more programs include instructions for:

generating a plurality of separate event streams in accordance with the plurality of user input events; and

merging information from the plurality of event streams to generate a stream of merged user input events, wherein the information that describes the simulated touch event includes information that describes the stream of merged user input events.

33. A non-transitory computer readable storage medium storing one or more programs, the one or more programs comprising instructions, which when executed by at an electronic device with a display and an input device separate from the display, cause the electronic device to:

display, concurrently on the display, a user interface that includes:

a representation of a first application that includes a plurality of user interface objects; and

a pointer object;

while concurrently displaying the representation of the first application and the pointer object, receive, at the input device separate from the display, a user input event directed to a respective location in the user interface at which the pointer object is displayed;

in response to detecting the user input event, in accordance with a determination that the respective location in the user interface at which the pointer object is displayed is over the representation of the first application:

generate a simulated touch event, including information that describes locations of one or more simulated touches in the user interface, based on the user input event;

provide, to the first application, the information that describes the simulated touch event including the information that describes the locations of the one or more simulated touches in the user interface; and

display, on the display, a change in the representation of the first application that is determined by the first application in response to the information that describes the simulated touch event.

34. The non-transitory computer readable storage medium of claim 33 , wherein the one or more programs include instructions, which when executed by the electronic device, cause the electronic device to:

generate a digitized event in accordance with the user input event, the digitized event including the location in the user interface at which the pointer object is displayed,

wherein generating the simulated touch event includes transforming the digitized event into the simulated touch event.

35. The non-transitory computer readable storage medium of claim 34 , wherein the digitized event comprises a pointer event paired with or having location information corresponding to the respective location in the user interface at which the pointer object is displayed.

36. The non-transitory computer readable storage medium of claim 34 ,

wherein the digitized event is generated from a pointer event paired with or having location information corresponding to the respective location in the user interface at which the pointer object is displayed.

37. The non-transitory computer readable storage medium of claim 33 , wherein the simulated touch event includes a plurality of fields having information including location information corresponding to the respective location in the user interface, and a phase value selected from a set of predefined phase values that includes at least a first predefined phase value that indicates a beginning phase of a simulated touch and a second predefined phase value that indicates that the simulated touch event is an update of a prior simulated touch event.

38. The non-transitory computer readable storage medium of claim 37 , wherein the set of predefined phase values includes at least a third predefined phase value that indicates a hover phase, the hover phase indicating a simulated touch proximate to but not in contact with the display.

39. The non-transitory computer readable storage medium of claim 37 , wherein:

the input device includes a button, wherein the button is a physical button;

the user input event includes a change in a state of the button; and

in accordance with the change in the state of the button, the simulated touch event has the first predefined phase value that indicates a beginning phase of a simulated touch.

40. The non-transitory computer readable storage medium of claim 39 , wherein,

the change in the state of the button includes an activation of the button; and,

the one or more programs include instructions, which when executed by the electronic device, cause the electronic device to:

while displaying the pointer object, receive, at the input device separate from the display, a second user input event that includes deactivation of the button; and

in response to detecting the second user input event:

provide, to the first application, information that describes a second simulated touch event having a phase value that indicates that the second simulated touch event corresponds to an end of the simulated touch event.

41. The non-transitory computer readable storage medium of claim 37 , wherein the one or more programs include instructions, which when executed by the electronic device, cause the electronic device to:

while displaying the pointer object, receive, at the input device separate from the display, a third user input event that moves the pointer object from the respective location to a third location on the display; and

in response to detecting the third user input event:

provide, to the first application, information that describes a third simulated touch event having the second predefined phase value that indicates that the third simulated touch event is an update of the simulated touch event.

42. The non-transitory computer readable storage medium of claim 33 , wherein the one or more programs include instructions, which when executed by the electronic device, cause the electronic device to:

while displaying the pointer object, receive, at the input device separate from the display, a fourth user input event directed to a third location at which the pointer object is displayed, the third location corresponding to a representation of a respective application distinct from the first application; and

in response to detecting the fourth user input event:

in accordance with a determination that the respective application is configured to be executed in a first operating system framework, provide, to the respective application, information that describes a fourth simulated touch event including information that describes locations of one or more additional simulated touches; and

in accordance with a determination that the respective application is not configured to be executed in the first operating system framework, forgo provision, to the respective application, of information that describes a simulated touch event.

43. The non-transitory computer readable storage medium of claim 33 , wherein the simulated touch event includes information that describes locations of a plurality of simulated touches in the user interface.

44. The non-transitory computer readable storage medium of claim 43 , wherein:

the plurality of simulated touches have a centroid at the respective location in the user interface at which the pointer object is displayed.

45. The non-transitory computer readable storage medium of claim 33 , wherein the input device is selected from the group consisting of:

a mouse;

a scroll wheel;

a keyboard; and

a touchpad separate from the display.

46. The non-transitory computer readable storage medium of claim 33 , wherein the respective location at which the pointer object is displayed corresponds to a plurality of views and the simulated touch event is provided to each view of the plurality of views.

47. The non-transitory computer readable storage medium of claim 33 , wherein:

the input device is a first input device;

the simulated touch event is a normalized touch event having a predefined event type and set of fields; and

the one or more programs include instructions, which when executed by the electronic device, cause the electronic device to:

receive, at a second input device, a fifth user input event; and

in response to detecting the fifth user input event:

provide, to the first application, information that describes a fifth simulated touch event, the fifth simulated touch event being a normalized touch event.

48. The non-transitory computer readable storage medium of claim 33 , wherein:

the input device is a respective input device of a plurality of input devices separate from the display;

the user input event is a first user input event of a plurality of user input events received from the plurality of input devices separate from the display; and

the one or more programs include instructions, which when executed by the electronic device, cause the electronic device to:

generate a plurality of separate event streams in accordance with the plurality of user input events; and

merge information from the plurality of event streams to generate a stream of merged user input events, wherein the information that describes the simulated touch event includes information that describes the stream of merged user input events.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 11, 2019
From: TURNER, MICHAEL T.; LEDET, RALEIGH J.
To: APPLE INC.
Reel/Frame 049432/0684 →
Continuity (2)
Provisional Application 62679956 · Jun 3, 2018
Related Publication 20190369829A1 · Dec 5, 2019