IP Library Granted Patent US 12,373,092
Granted Patent B2
US 12,373,092 · App. 18/140,544 · Granted Jul 29, 2025

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 12,373,092
App. No.
18/140,544
Granted
Jul 29, 2025
Kind
B2
Abstract

An electronic device, with a display and an input device, displays, on the display, a user interface for an application. While displaying the user interface, the device receives a user input. In response to the user input: the device provides to the application a first input event having a phase field with a first phase value, the first input event corresponding to an input proximate to but not in contact with a touch-sensitive surface. After providing the first input event, the device provides to the application a second input event having a phase field with a second phase value, the second input event corresponding to the user input being in contact with the touch-sensitive surface. The device displays, on the display, an update to the user interface for the application that is based at least in part on the first input event and the second input event.

Claims (168)

1. A method, comprising:

at an electronic device with a display and an input device:

displaying, on the display, a user interface for an application that includes a plurality of user interface objects;

while displaying the user interface for the application, receiving, at the input device, a user input;

in response to the user input:

providing to the application a first input event having a phase field with a first phase value that indicates a hover event in which the user input is proximate to but not in contact with a touch-sensitive surface;

after providing the first input event, providing to the application a second input event having a phase field with a second phase value that indicates a touch event in which the user input is in contact with the touch-sensitive surface, wherein the second input event includes information that indicates that both the second input event and the first input event are associated with a same user input; and

displaying, on the display, an update to the user interface for the application that is based at least in part on the first input event and the second input event being provided to the application and based on the second input event including information that indicates that both the second input event and the first input event are associated with the same user input.

2. The method of claim 1 , wherein the input device includes the touch-sensitive surface.

3. The method of claim 2 , wherein the first input event, corresponding to the user input being proximate to but not in contact with the touch-sensitive surface, is triggered by detecting the user input within a predefined distance of the touch-sensitive surface.

4. The method of claim 1 , wherein:

the first input event and the second input event are provided to the application in a normalized touch event data structure that includes a phase field and an input identifier field; and

the first input event and the second input event have a same value for the input identifier field, indicating that both the first input event and second input event represent parts of a same gesture.

5. The method of claim 1 , wherein:

the first phase value indicates that the first input event corresponds to a beginning of an input proximate to but not in contact with the touch-sensitive surface.

6. The method of claim 5 , further including,

after providing the first input event to the application, detecting a change in the user input; and

in response to detecting the change in the user input, corresponding to a change in position or proximity of the user input while proximate to but not in contact with the touch-sensitive surface, providing to the application a third input event having information indicating a change in position or proximity of the user input while proximate to but not in contact with the touch-sensitive surface.

7. The method of claim 5 , further including,

after providing the first input event to the application, detecting a further change in the user input; and

in response to detecting the further change in the user input, providing a fourth input event to the application, the fourth input event having information indicating a hover end state of the user input.

8. The method of claim 1 , wherein the second phase value is a touch begin phase value indicating an initial contact of the user input with the touch-sensitive surface; and

the method further includes,

after providing the first input event and second input event to the application, detecting a change in the user input; and

in response to detecting the change in the user input, corresponding to a change in position of the user input while in contact with the touch-sensitive surface, providing to the application a fourth input event having information indicating a change in position of the user input while in contact with the touch-sensitive surface.

9. The method of claim 8 , further comprising:

after providing the first, second and fourth input events to the application, detecting a further change in the user input; and

in response to detecting the further change in the user input, corresponding to liftoff of the user input from the touch-sensitive surface, providing to the application a fifth input event having information indicating liftoff of the user input from the touch-sensitive surface.

10. The method of claim 9 , further comprising,

after providing the first, second, fourth, and fifth input events to the application, detecting a further change in the user input; and

in response to detecting the further change in the user input, corresponding to a change in position or proximity of the user input while proximate to but not in contact with the touch-sensitive surface, providing to the application a sixth input event having information indicating a change in position or proximity of the user input proximate to but not in contact with the touch-sensitive surface.

11. The method of claim 10 , further comprising,

after providing the first, second, fourth, fifth, and sixth input events to the application, detecting a further change in the user input; and

in response to detecting the further change in the user input, corresponding to a second contact of the user input with the touch-sensitive surface, providing to the application a seventh input event having information indicating that the user input has touched the touch-sensitive surface.

12. The method of claim 1 , wherein:

the input device is separate from the display; and

the method further includes,

displaying, on the display, a pointer object;

while displaying the pointer object for the application, receiving, at the input device, a second user input that corresponds to movement of the pointer object on the display into a first view of the user interface for the application;

in response to the second user input:

providing to the application, an eighth input event having a phase field with the first phase value, the first phase value being a hover phase value indicating that the eighth input event corresponds to an input proximate to but not in contact with a touch-sensitive surface;

after providing the eighth input event, providing to the application a ninth input event having a phase field with the second phase value, the second input event corresponding to the user input being in contact with the touch-sensitive surface; and

displaying, on the display, an update to the user interface for the application that is based at least in part on the eighth input event and the ninth input event.

13. The method of claim 1 , wherein:

the user interface for the application comprises a first view;

displaying the user interface for the application includes displaying a second view;

the first input event and second input event are directed to the first view of the user interface for the application;

the method further includes,

while displaying the first view and the second view, receiving, at the input device, a second user input having a location that moves from a first location that corresponds to the first view to a second location that correspond to the second view;

in response to the second user input, generating a ninth input event having a respective phase field with a respective phase value, wherein the ninth input event includes information that corresponds to the second location;

in accordance with a determination that the respective phase value for the ninth input event is a hover phase indicating a touch proximate to but not in contact with the touch-sensitive surface, providing the ninth input event to an application associated with the second view; and

in accordance with a determination that the respective phase value for the ninth input event is a touch phase indicating a touch in contact with the touch-sensitive surface, providing the ninth input event to an application associated with the first view.

14. The method of claim 13 , wherein:

the displaying includes displaying, on the display, a pointer object;

the input device is separate from the display, and the second user input is received from the input device separate from the display; and

the second user input corresponds to movement of the pointer object from the first location that corresponds to the first view to the second location that corresponds to the second view.

15. The method of claim 13 , wherein:

the display is a touch-sensitive display that includes the touch-sensitive surface, the touch-sensitive display being sensitive to contacts proximate to but not in contact with the touch-sensitive display;

the second user input is received from the touch-sensitive display; and

the second user input corresponds to an input at the touch-sensitive display that moves from a location over the first location on the touch-sensitive display that corresponds to the first view to a location over the second location on the touch-sensitive display that corresponds to the second view.

16. The method of claim 13 , wherein the second view is a respective view of the application.

17. The method of claim 13 , wherein:

the application is a first application;

the first view is a respective view of the first application; and

the second view is a respective view of a second application distinct from the first application.

18. An electronic device, comprising:

a display;

an input device;

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, on the display, a user interface for an application that includes a plurality of user interface objects;

while displaying the user interface for the application, receiving, at the input device, a user input;

in response to the user input:

providing to the application a first input event having a phase field with a first phase value that indicates a hover event in which the user input is proximate to but not in contact with a touch-sensitive surface;

after providing the first input event, providing to the application a second input event having a phase field with a second phase value that indicates a touch event in which the user input is in contact with the touch-sensitive surface, wherein the second input event includes information that indicates that both the second input event and the first input event are associated with a same user input; and

displaying, on the display, an update to the user interface for the application that is based at least in part on the first input event and the second input event being provided to the application and based on the second input event including information that indicates that both the second input event and the first input event are associated with the same user input.

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

display, on the display, a user interface for an application that includes a plurality of user interface objects;

while displaying the user interface for the application, receive, at the input device, a user input;

in response to the user input:

provide to the application a first input event having a phase field with a first phase value that indicates a hover event in which the user input is proximate to but not in contact with a touch-sensitive surface;

after providing the first input event, provide to the application a second input event having a phase field with a second phase value that indicates a touch event in which the user input is in contact with the touch-sensitive surface, wherein the second input event includes information that indicates that both the second input event and the first input event are associated with a same user input; and

display, on the display, an update to the user interface for the application that is based at least in part on the first input event and the second input event being provided to the application and based on the second input event including information that indicates that both the second input event and the first input event are associated with the same user input.

20. The non-transitory computer readable storage medium of claim 19 , wherein the input device includes the touch-sensitive surface.

21. The non-transitory computer readable storage medium of claim 20 , wherein the first input event, corresponding to the user input being proximate to but not in contact with the touch-sensitive surface, is triggered by detecting the user input within a predefined distance of the touch-sensitive surface.

22. The non-transitory computer readable storage medium of claim 19 , wherein:

the first input event and the second input event are provided to the application in a normalized touch event data structure that includes a phase field and an input identifier field; and

the first input event and the second input event have a same value for the input identifier field, indicating that both the first input event and second input event represent parts of a same gesture.

23. The non-transitory computer readable storage medium of claim 19 , wherein:

the first phase value indicates that the first input event corresponds to a beginning of an input proximate to but not in contact with the touch-sensitive surface.

24. The non-transitory computer readable storage medium of claim 23 , wherein the one or more programs further include instructions that cause the electronic device to,

after providing the first input event to the application, detect a change in the user input; and

in response to detecting the change in the user input, corresponding to a change in position or proximity of the user input while proximate to but not in contact with the touch-sensitive surface, provide to the application a third input event having information indicating a change in position or proximity of the user input while proximate to but not in contact with the touch-sensitive surface.

25. The non-transitory computer readable storage medium of claim 23 , wherein the one or more programs further include instructions that cause the electronic device to,

after providing the first input event to the application, detect a further change in the user input; and

in response to detecting the further change in the user input, provide a fourth input event to the application, the fourth input event having information indicating a hover end state of the user input.

26. The non-transitory computer readable storage medium of claim 19 , wherein the second phase value is a touch begin phase value indicating an initial contact of the user input with the touch-sensitive surface; and

the one or more programs further include instructions that cause the electronic device to,

after providing the first input event and second input event to the application, detect a change in the user input; and

in response to detecting the change in the user input, corresponding to a change in position of the user input while in contact with the touch-sensitive surface, provide to the application a fourth input event having information indicating a change in position of the user input while in contact with the touch-sensitive surface.

27. The non-transitory computer readable storage medium of claim 26 , wherein the one or more programs further comprising instructions that cause the electronic device to:

after providing the first, second and fourth input events to the application, detect a further change in the user input; and

in response to detecting the further change in the user input, corresponding to liftoff of the user input from the touch-sensitive surface, provide to the application a fifth input event having information indicating liftoff of the user input from the touch-sensitive surface.

28. The non-transitory computer readable storage medium of claim 19 , wherein:

the input device is separate from the display; and

the one or more programs further include instructions that cause the electronic device to,

display, on the display, a pointer object;

while displaying the pointer object for the application, receive, at the input device, a second user input that corresponds to movement of the pointer object on the display into a first view of the user interface for the application;

in response to the second user input:

provide to the application, an eighth input event having a phase field with the first phase value, the first phase value being a hover phase value indicating that the eighth input event corresponds to an input proximate to but not in contact with a touch-sensitive surface;

after providing the eighth input event, provide to the application a ninth input event having a phase field with the second phase value, the second input event corresponding to the user input being in contact with the touch-sensitive surface; and

display, on the display, an update to the user interface for the application that is based at least in part on the eighth input event and the ninth input event.

29. The non-transitory computer readable storage medium of claim 19 , wherein:

the user interface for the application comprises a first view;

displaying the user interface for the application includes displaying a second view;

the first input event and second input event are directed to the first view of the user interface for the application;

the one or more programs further include instructions that cause the electronic device to,

while displaying the first view and the second view, receive, at the input device, a second user input having a location that moves from a first location that corresponds to the first view to a second location that correspond to the second view;

in response to the second user input, generate a ninth input event having a respective phase field with a respective phase value, wherein the ninth input event includes information that corresponds to the second location;

in accordance with a determination that the respective phase value for the ninth input event is a hover phase indicating a touch proximate to but not in contact with the touch-sensitive surface, provide the ninth input event to an application associated with the second view; and

in accordance with a determination that the respective phase value for the ninth input event is a touch phase indicating a touch in contact with the touch-sensitive surface, provide the ninth input event to an application associated with the first view.

30. The non-transitory computer readable storage medium of claim 29 , wherein:

the application is a first application;

the first view is a respective view of the first application; and

the second view is a respective view of a second application distinct from the first application.

31. The electronic device of claim 18 , wherein the input device includes the touch-sensitive surface.

32. The electronic device of claim 31 , wherein the first input event, corresponding to the user input being proximate to but not in contact with the touch-sensitive surface, is triggered by detecting the user input within a predefined distance of the touch-sensitive surface.

33. The electronic device of claim 18 , wherein:

the first input event and the second input event are provided to the application in a normalized touch event data structure that includes a phase field and an input identifier field; and

the first input event and the second input event have a same value for the input identifier field, indicating that both the first input event and second input event represent parts of a same gesture.

34. The electronic device of claim 18 , wherein:

the first phase value indicates that the first input event corresponds to a beginning of an input proximate to but not in contact with the touch-sensitive surface.

35. The electronic device of claim 34 , wherein the one or more programs further include instructions for,

after providing the first input event to the application, detecting a change in the user input; and

in response to detecting the change in the user input, corresponding to a change in position or proximity of the user input while proximate to but not in contact with the touch-sensitive surface, providing to the application a third input event having information indicating a change in position or proximity of the user input while proximate to but not in contact with the touch-sensitive surface.

36. The electronic device of claim 34 , wherein the one or more programs further include instructions for,

after providing the first input event to the application, detecting a further change in the user input; and

in response to detecting the further change in the user input, providing a fourth input event to the application, the fourth input event having information indicating a hover end state of the user input.

37. The electronic device of claim 18 , wherein the second phase value is a touch begin phase value indicating an initial contact of the user input with the touch-sensitive surface; and

the one or more programs further include instructions for,

after providing the first input event and second input event to the application, detecting a change in the user input; and

in response to detecting the change in the user input, corresponding to a change in position of the user input while in contact with the touch-sensitive surface, providing to the application a fourth input event having information indicating a change in position of the user input while in contact with the touch-sensitive surface.

38. The electronic device of claim 37 , wherein the one or more programs further include instructions for:

after providing the first, second and fourth input events to the application, detecting a further change in the user input; and

in response to detecting the further change in the user input, corresponding to liftoff of the user input from the touch-sensitive surface, providing to the application a fifth input event having information indicating liftoff of the user input from the touch-sensitive surface.

39. The electronic device of claim 18 , wherein:

the input device is separate from the display; and

the one or more programs further include instructions for,

displaying, on the display, a pointer object;

while displaying the pointer object for the application, receiving, at the input device, a second user input that corresponds to movement of the pointer object on the display into a first view of the user interface for the application;

in response to the second user input:

providing to the application, an eighth input event having a phase field with the first phase value, the first phase value being a hover phase value indicating that the eighth input event corresponds to an input proximate to but not in contact with a touch-sensitive surface;

after providing the eighth input event, providing to the application a ninth input event having a phase field with the second phase value, the second input event corresponding to the user input being in contact with the touch-sensitive surface; and

displaying, on the display, an update to the user interface for the application that is based at least in part on the eighth input event and the ninth input event.

40. The electronic device of claim 18 , wherein:

the user interface for the application comprises a first view;

displaying the user interface for the application includes displaying a second view;

the first input event and second input event are directed to the first view of the user interface for the application;

the one or more programs further include instructions for,

while displaying the first view and the second view, receiving, at the input device, a second user input having a location that moves from a first location that corresponds to the first view to a second location that correspond to the second view;

in response to the second user input, generating a ninth input event having a respective phase field with a respective phase value, wherein the ninth input event includes information that corresponds to the second location;

in accordance with a determination that the respective phase value for the ninth input event is a hover phase indicating a touch proximate to but not in contact with the touch-sensitive surface, providing the ninth input event to an application associated with the second view; and

in accordance with a determination that the respective phase value for the ninth input event is a touch phase indicating a touch in contact with the touch-sensitive surface, providing the ninth input event to an application associated with the first view.

41. The electronic device of claim 40 , wherein:

the application is a first application;

the first view is a respective view of the first application; and

the second view is a respective view of a second application distinct from the first application.

Continuity (4)
Continuation 17145168 · Jan 8, 2021
Continuation 16425828 · May 29, 2019
Provisional Application 62679956 · Jun 3, 2018
Related Publication 20230259269A1 · Aug 17, 2023
References Cited (53)
US 8214539B1 · Kulanko · 2012 [cited by applicant]
US 10394320B2 · Svahn et al. · 2019 [cited by applicant]
US 10831331B2 · Dunning · 2020 [cited by examiner]
US 11086475B1 · Ravasz et al. · 2021 [cited by applicant]
US 20080211766A1 · Westerman et al. · 2008 [cited by applicant]
US 20090066668A1 · Kim et al. · 2009 [cited by applicant]
US 20090225037A1 · Williamson et al. · 2009 [cited by applicant]
US 20090228901A1 · Beaver et al. · 2009 [cited by applicant]
US 20100235118A1 · Moore et al. · 2010 [cited by applicant]
US 20110175830A1 · Miyazawa · 2011 [cited by examiner]
US 20110181526A1 · Shaffer et al. · 2011 [cited by applicant]
US 20120026077A1 · Hackborn · 2012 [cited by applicant]
US 20140055395A1 · Kim · 2014 [cited by applicant]
US 20140208260A1 · Kawahara et al. · 2014 [cited by applicant]
US 20140210756A1 · Lee · 2014 [cited by examiner]
US 20150067513A1 · Zambetti et al. · 2015 [cited by applicant]
US 20150067605A1 · Zambetti · 2015 [cited by examiner]
US 20160048304A1 · Niranjani · 2016 [cited by examiner]
US 20160062452A1 · Kim et al. · 2016 [cited by applicant]
US 20160306431A1 · Stafford et al. · 2016 [cited by applicant]
US 20160350071A1 · Murillo et al. · 2016 [cited by applicant]
US 20170336884A1 · Pavlou et al. · 2017 [cited by applicant]
US 20190369829A1 · Turner et al. · 2019 [cited by applicant]
US 20210132762A1 · Turner et al. · 2021 [cited by applicant]
US 20220229524A1 · McKenzie et al. · 2022 [cited by applicant]
US 20240036699A1 · Ebbole et al. · 2024 [cited by applicant]
CN 101627361A · 2010 [cited by applicant]
EP 2096524A2 · 2009 [cited by applicant]
EP 2770422A2 · 2014 [cited by applicant]
KR 20130115037A · 2013 [cited by applicant]
WO WO2012087939A1 · 2012 [cited by applicant]
WO WO2023137402A1 · 2023 [cited by applicant]
Office Action, dated Apr. 23, 2020, received in U.S. Appl. No. 16/425,828, 12 pages. [cited by applicant]
Notice of Allowance, dated Oct. 15, 2020, received in U.S. Appl. No. 16/425,828, 8 pages. [cited by applicant]
Office Action, dated Feb. 23, 2022, received in European U.S. Appl. No. 16/425,828, which corresponds with U.S. Appl. No. 16/425,828, 5 pages. [cited by applicant]
Office Action, dated Oct. 28, 2022, received in European U.S. Appl. No. 16/425,828, which corresponds with U.S. Appl. No. 16/425,828, 6 pages. [cited by applicant]
Office Action, dated Aug. 13, 2021, received in U.S. Appl. No. 17/145,168, 11 pages. [cited by applicant]
Final Office Action, dated Feb. 8, 2022, received in U.S. Appl. No. 17/145,168, 12 pages. [cited by applicant]
Office Action, dated May 19, 2022, received in U.S. Appl. No. 17/145,168, 13 pages. [cited by applicant]
Final Office Action, dated Oct. 26, 2022, received in U.S. Appl. No. 17/145,168, 15 pages. [cited by applicant]
Invitation to Pay Additional Fees, dated Aug. 29, 2019, received in International Patent Application No. PCT/US2019/034846, which corresponds with U.S. Appl. No. 16/425,828, 39 pages. [cited by applicant]
ISR and Written Opinion, dated Oct. 21, 2019, received in International Patent Application No. PCT/US2019/034846, which corresponds with U.S. Appl. No. 16/425,828, 24 pages. [cited by applicant]
Notice of Allowance, dated May 11, 2023, received in U.S. Appl. No. 17/145,168, 7 pages. [cited by applicant]
Intent to Grant, dated Nov. 20, 2023, received in European U.S. Appl. No. 16/425,828, which corresponds with U.S. Appl. No. 16/425,828, 9 pages. [cited by applicant]
Poupyrev, “The Go Go Interaction Technique: Non Linear Mapping for Direct Manipulation in VR”, http://www.ivan poupyrev.com., Nov. 1, 1996, 2 pages. [cited by applicant]
Office Action, dated Nov. 20, 2024, received in Chinese U.S. Appl. No. 16/425,828, which corresponds with U.S. Appl. No. 16/425,828, 2 pages. [cited by applicant]
International Search Report and Written Opinion, dated Nov. 24, 2023, received in International Patent Application No. PCT/US2023/028858, which corresponds with U.S. Appl. No. 18/226,200, 19 pages. [cited by applicant]
International Search Report and Written Opinion, dated Jan. 2, 2025, received in International Patent Application No. PCT/US2024/047399, which corresponds with U.S. Appl. No. 18/886,891, 15 pages. [cited by applicant]
Anonymous, “Event Handling Guide for iOS”, https://github.com/ionfee88/iOSDevelopeLibrary/raw/master/EventHandlingiPhoneOS.pdf, Mar. 9, 2015, 74 pages. [cited by applicant]
Patent, dated Mar. 6, 2024, received in European Patent Application No. 19732177.1, which corresponds with U.S. Appl. No. 16/425,828, 4 pages. [cited by applicant]
Extended European Search Report, dated Apr. 26, 2024, received in European Patent Application No. 24153387.6, which corresponds with U.S. Appl. No. 18/140,544, 11 pages. [cited by applicant]
Office Action, dated Apr. 4, 2025, received in U.S. Appl. No. 18/226,200, 10 pages. [cited by applicant]
Office Action, dated Jun. 3, 2025, received in Chinese U.S. Appl. No. 16/425,828, which corresponds with U.S. Appl. No. 16/425,828, 1 page. [cited by applicant]