IP Library Granted Patent US 11,822,785
Granted Patent B2
US 11,822,785 · App. 17/373,650 · Granted Nov 21, 2023

Managing application focus transitions

Inventors: Divya Ramesh Kamath (San Francisco, CA); Todd Christopher Kloots (San Francisco, CA)
Assignee: Salesforce, Inc.
G06F3/04892G06F3/0482H04L12/1813
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 11,822,785
App. No.
17/373,650
Granted
Nov 21, 2023
Kind
B2
Abstract

Media, methods, and systems are disclosed for managing focus for an application having a plurality of application user interface components. Initially, a first user interface component receives a first keystroke. Responsive to receiving the first keystroke, the application transitions from a default or pointing device navigation mode to a managed or keyboard navigation mode. The first user interface component receives a second keystroke, and responsive thereto invokes an application focus manager to set a destination user interface component identifier. Next, a second user interface component associated with the destination user interface component identifier compares the destination user interface component identifier to its own component identifier. Finally, the second user interface component claims keyboard input focus in the application.

Claims (49)

1. One or more non-transitory computer-readable media storing computer-executable instructions that, when executed by at least one processor, perform a method of managing focus for an application comprising a plurality of application user interface (UI) components, the method comprising:

receiving, by a first UI component in the plurality of application UI components, a first keystroke in a predefined set of navigation keystrokes;

responsive to receiving the first keystroke, transitioning to a keyboard navigation mode;

receiving, by the first UI component, a second keystroke in the predefined set of navigation keystrokes;

responsive to receiving the second keystroke, invoking, by the first UI component, an application focus manager to set a destination UI component identifier indicative of a UI component to receive a keyboard input focus;

retrieving, by the application focus manager, the destination UI component identifier;

determining whether the destination UI component identifier matches a UI component identifier associated with a second UI component;

upon determining that the destination UI component identifier matches the UI component identifier associated with the second UI component, providing, to the application focus manager and by the second UI component, a parameter indicating a state of the second UI component to the application focus manager; and

upon determining that the parameter indicates the state is not a ready state, re-invoking the application focus manager, by the second UI component, to determine if the parameter indicates the state is the ready state; and

upon determining that the parameter indicates the state is the ready state, updating the keyboard input focus to the second UI component,

wherein the ready state is indicative that the second UI component is ready to claim the keyboard input focus.

2. The non-transitory computer-readable media of claim 1 , wherein invoking the application focus manager to set the destination UI component identifier further comprises a step of providing, to the application focus manager, additional context data for the second UI component.

3. The non-transitory computer-readable media of claim 2 , wherein the method further comprises storing, by the application focus manager, the additional context data and the destination UI component identifier.

4. The non-transitory computer-readable media of claim 1 , wherein the first UI component is distinct from the second UI component.

5. The non-transitory computer-readable media of claim 1 , wherein the application focus manager is configured to programmatically determine whether an invoking UI component should be focused based on a match between a provided component UI identifier and the destination UI component identifier.

6. The non-transitory computer-readable media of claim 5 , wherein the application focus manager programmatically determines whether the invoking UI component should be focused based on the keyboard navigation mode.

7. The non-transitory computer-readable media of claim 1 , wherein the second UI component invokes the application focus manager with the UI component identifier associated with the second UI component.

8. A method of managing focus for an application comprising a plurality of application user interface (UI) components, the method comprising:

receiving, by a first UI component in the plurality of application UI components, a first keystroke in a predefined set of navigation keystrokes;

responsive to receiving the first keystroke, transitioning to a keyboard navigation mode;

receiving, by the first UI component, a second keystroke in the predefined set of navigation keystrokes;

responsive to receiving the second keystroke, invoking, by the first UI component, an application focus manager to set a destination UI component identifier indicative of a UI component to receive a keyboard input focus;

retrieving, by the application focus manager, the destination UI component identifier;

determining whether the destination UI component identifier matches a UI component identifier associated with a second UI component;

upon determining that the destination UI component identifier matches the UI component identifier associated with the second UI component, providing, to the application focus manager and by the second UI component, a parameter indicating a state of the second UI component to the application focus manager;

upon determining that the parameter indicates the state is not a ready state, re-invoking the application focus manager, by the second UI component, to determine if the parameter indicates the state is the ready state; and

upon determining that the parameter indicates the state is the ready state, updating the keyboard input focus to the second UI component,

wherein the ready state is indicative that the second UI component is ready to claim the keyboard input focus.

9. The method of claim 8 , wherein invoking the application focus manager to set the destination UI component identifier further comprises providing, to the application focus manager, additional context data for the second UI component.

10. The method of claim 9 , further comprising storing, by the application focus manager, the additional context data and the destination UI component identifier.

11. The method of claim 8 , wherein the first UI component is distinct from the second UI component.

12. The method of claim 8 , wherein the application focus manager is configured to programmatically determine whether an invoking UI component should be focused based on a match between a provided UI component identifier and the destination UI component identifier.

13. The method of claim 12 , wherein the application focus manager programmatically determines whether the invoking UI component should be focused based on the keyboard navigation mode.

14. The method of claim 8 , wherein the second UI component invokes the application focus manager with the UI component identifier associated with the second UI component.

15. A system comprising at least one processor and at least one non-transitory memory storing computer executable instructions that when executed by the at least one processor cause the system to carry out actions comprising:

receiving, by a first user interface (UI) component in a plurality of application UI components, a first keystroke in a predefined set of navigation keystrokes;

responsive to receiving the first keystroke, transitioning to a keyboard navigation mode;

receiving, by the first UI component, a second keystroke in the predefined set of navigation keystrokes;

responsive to receiving the second keystroke, invoking, by the first UI component, an application focus manager to set a destination UI component identifier indicative of a UI component to receive a keyboard input focus;

retrieving, by the application focus manager, the destination UI component identifier;

determining whether the destination UI component identifier matches a UI component identifier associated with a second UI component;

upon determining that the destination UI component identifier matches the UI component identifier associated with the second UI component, providing, to the application focus manager and by the second UI component, a parameter indicating a state of the second UI component to the application focus manager;

upon determining that the parameter indicates the state is not a ready state, re-invoking the application focus manager, by the second UI component, to determine if the parameter indicates the state is the ready state; and

upon determining that the parameter indicates the state is the ready state, updating the keyboard input focus to the second UI component, wherein the ready state is indicative that the second UI component is ready to claim the keyboard input focus.

16. The system of claim 15 , wherein invoking the application focus manager to set the destination UI component identifier further comprises providing, to the application focus manager, additional context data for the second UI component.

17. The system of claim 16 , wherein the actions further comprise storing, by the application focus manager, the additional context data and the destination UI component identifier.

18. The system of claim 15 , wherein the first UI component is distinct from the second UI component.

19. The system of claim 15 , wherein the application focus manager is configured to programmatically determine whether an invoking UI component should be focused based on a match between a provided component UI identifier and the destination UI component identifier.

20. The system of claim 15 , wherein the second UI component invokes the application focus manager with the UI component identifier associated with the second UI component.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 18, 2023
From: SLACK TECHNOLOGIES, LLC
To: SALESFORCE, INC.
Reel/Frame 064642/0564 →
MERGER Recorded Jul 29, 2021
From: SLACK TECHNOLOGIES, INC.
To: SLACK TECHNOLOGIES, LLC
Reel/Frame 057475/0404 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 12, 2021
From: KAMATH, DIVYA RAMESH; KLOOTS, TODD CHRISTOPHER
To: SLACK TECHNOLOGIES, INC.
Reel/Frame 056829/0491 →
Continuity (1)
Related Publication 20230012141A1 · Jan 12, 2023