Setting simultaneous focus across multiple operating systems
Abstract
The techniques disclosed herein enable a commanding application running on a primary OS to control a virtualized application running on a secondary OS when doing so requires that both applications have the focus of their respective operating systems. Ordinarily, an operating system focuses one application at a time. When a proxy application running on a primary OS virtualizes a guest application running on a secondary OS, the proxy application and the guest application gain and lose focus synchronously. However, when the guest application loses the focus of the secondary OS, the guest application can no longer receive commands, and so a commanding application running on the primary OS is unable to send commands to the guest application. In some configurations, a fixed-focus system allows the commanding application to have the focus of the primary OS while the proxied guest application retains the focus of the secondary OS.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1 . A method comprising:
setting a focus of a secondary operating system to a guest application in response to a focus of a primary operating system being set to a corresponding proxy application; determining that the focus of the primary operating system has switched from the proxy application to a commanding application; determining that the commanding application satisfies a fixed focus mode criteria; entering a fixed focus mode that allows the guest application to retain the focus of the secondary operating system while the commanding application retains the focus of the primary operating system; and providing a command from the commanding application to the guest application.
2 . The method of claim 1 , wherein the proxy application virtualizes the guest application by rendering a graphical user interface generated by the guest application in a desktop of the primary operating system, and by forwarding user interface commands received by the proxy application to the guest application.
3 . The method of claim 1 , further comprising:
switching the focus of the secondary operating system away from the guest application when the focus of the primary operating system is switched away from the proxy application.
4 . The method of claim 3 , wherein the focus of the secondary operating system is switched to a placeholder application.
5 . The method of claim 1 , wherein forwarding the command to the guest application comprises forwarding the command to the secondary operating system, wherein the secondary operating system forwards the command to the focused application.
6 . The method of claim 1 , wherein the commanding application comprises a debugger, an automation driver, or a screen capture application.
7 . The method of claim 1 , wherein determining that the commanding application satisfies the fixed focus mode criteria comprises determining whether a name of the commanding application is included in a list of commanding applications.
8 . The method of claim 1 , wherein determining that the commanding application satisfies the fixed focus mode criteria comprises determining whether an application type of the commanding application is included in a list of commanding application types.
9 . The method of claim 1 , wherein determining that the commanding application satisfies the fixed focus mode criteria comprises determining whether the commanding application invokes one of a predefined list of application program interfaces associated with commanding applications.
10 . A computing device comprising:
one or more processors; a memory in communication with the one or more processors, the memory having computer-readable instructions stored thereupon which, when executed by the one or more processors, cause the computing device to:
set a focus of a secondary operating system to a guest application in response to a focus of a primary operating system being set to a corresponding proxy application;
determine that the focus of the primary operating system has switched from the proxy application to a commanding application;
synchronize focus of the primary operating system and the secondary operating system by switching the focus of the secondary operating system away from the guest application;
determine that the commanding application invokes an application program interface indicative of commanding applications;
enter a fixed focus mode that changes the focus of the secondary operating system to the guest application and that allows the guest application to retain the focus of the secondary operating system while the commanding application retains the focus of the primary operating system; and
provide a command from the commanding application to the guest application.
11 . The computing device of claim 10 , wherein focus of the primary operating system and the secondary operating system is synchronized by switching the focus of the secondary operating system to a placeholder application.
12 . The computing device of claim 10 , wherein fixed focus mode changes the focus of the secondary operating system to the guest application based on the guest application having the focus of the secondary operating system when the commanding application gained the focus of the primary operating system.
13 . The computing device of claim 10 , wherein fixed focus mode changes the focus of the secondary operating system to the guest application based on the guest application being targeted by the application program interface that is indicative of commanding applications.
14 . The computing device of claim 10 , wherein the instructions further cause the processor to:
maintain focus synchronicity by setting the focus of the secondary operating system to an individual guest application if and only if the focus of the primary operating system is set to a corresponding individual proxy application, wherein entering the fixed focus mode suspends focus synchronicity.
15 . A computer-readable storage medium comprising instructions that, when executed by a processor, cause the processor to:
set a focus of a secondary operating system to a guest application in response to a focus of a primary operating system being set to a corresponding proxy application; forward user interface commands to the guest application; determine that the focus of the primary operating system has switched from the proxy application to a commanding application; enter a fixed focus mode that prevents user interface commands that would set the focus of the secondary operating system to the guest application from being forwarded to the secondary operating system; and provide a command from the commanding application to the guest application.
16 . The computer-readable storage medium of claim 15 , wherein the primary operating system comprises a host operating system running on a hypervisor and the secondary operating system comprises a guest operating system running on a hypervisor.
17 . The computer-readable storage medium of claim 15 , wherein the instructions further cause the processor to:
restore the focus of the secondary operating system to the guest application when the focus of the secondary operating system changes unexpectedly.
18 . The computer-readable storage medium of claim 17 , wherein focus is restored by sending a synthetic command that focuses the guest application to the secondary operating system.
19 . The computer-readable storage medium of claim 15 , wherein the fixed focus mode is exited in response to the focus of the primary operating system switching away from the commanding application.
20 . The computer-readable storage medium of claim 19 , wherein focus synchronicity resumes upon exiting fixed focus mode.Join the waitlist — get patent alerts
Track US2023376337A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.