IP Library Granted Patent US 10,564,829
Granted Patent B2
US 10,564,829 · App. 15/081,678 · Granted Feb 18, 2020

Optimizing window resize actions for remoted applications

Inventor: Adam Gregory Gross (Dexter, MI)
Assignee: VMWARE, INC.
G06F3/04845G06F3/1454H04L67/42
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,564,829
App. No.
15/081,678
Granted
Feb 18, 2020
Kind
B2
Abstract

Techniques for optimizing window resize actions for a remoted application are provided, where the remoted application has a server-side window running within a remote desktop of a server system, and where the server-side window is made accessible to a user of a client system as a client-side window displayed in a client desktop of the client system. In one embodiment, the client system can receive from the server system a notification that the server-side window is being resized in the remote desktop, and can determine that the user is currently entering one or more input commands for resizing the server-side window. In response, the client system can send a message to the server system for canceling the resizing of the server-side window. The client system can then allow the user to resize the client-side window via the one or more input commands, while the server-side window remains a fixed size.

Claims (52)

1. A method for optimizing window resize actions for a remoted application, wherein the remoted application has a server-side application window running within a remote desktop of a server system, and wherein the server-side application window is made accessible to a user of a client system in the form of a client-side application window displayed in a client desktop of the client system, the method comprising:

receiving, by the client system from the server system, a notification that the server-side application window is being resized in the remote desktop;

upon receiving the notification that the server-side application window is being resized in the remote desktop, checking, by the client system, whether the user is currently entering one or more input commands for resizing the client-side application window in the client desktop of the client system; and

if client system determines, upon receiving the notification that the server-side window is being resized in the remote desktop, that the user is currently entering one or more input commands for resizing the client-side application window:

sending, by the client system to the server system, a message that causes the server system to cancel the resizing of the server-side application window;

subsequently to sending the message that causes the server system to cancel the resizing of the server-side application window, allowing, by the client system, the user to resize the client-side application window in the client desktop via the one or more input commands without resizing the server-side application window; and

upon the user completing entering of the one or more input commands at the client system, sending, by the client system, a request to the server system for resizing the server-side application window according to a final size of the client-side application window in the client desktop,

wherein the server system resizes the server-side application window according to the final size of the client-side application window.

2. The method of claim 1 wherein a full window drag option is enabled in the remote desktop, which causes the server system to continuously redraw the entirety of the server-side application window in the remote desktop when the server-side application window is resized.

3. The method of claim 1 wherein, prior to allowing the user to resize the client-side application window in the client desktop, the method further comprises placing the client-side application window into a resizing state.

4. The method of claim 1 wherein a full window drag option is enabled in the client desktop, which causes the client system to continuously redraw the entirety of the client-side application window in the client desktop when the client-side application window is resized.

5. The method of claim 1 further comprising, at a periodic interval during the resizing of the client-side application window by the user:

determining, by the client system, a current size of the client-side application window in the client desktop;

issuing, by the client system, a request to the server system for resizing the server-side application window in the remote desktop to match the current size of the client-side application window in the client desktop; and

in response to issuing the request, receiving, by the client system, a framebuffer update from the server system,

wherein an initial value for the periodic interval is preconfigured by the user.

6. The method of claim 1 further comprising:

if client system determines, upon receiving the notification that the server-side window is being resized in the remote desktop, that the user is not currently entering one or more input commands for resizing the client-side application window, refraining from sending the message to the server system.

7. A non-transitory computer readable storage medium having stored thereon program code executable by client system, the program code embodying a method for optimizing window resize actions for a remoted application, wherein the remoted application has a server-side application window running within a remote desktop of a server system, and wherein the server-side application window is made accessible to a user of the client system in the form of a client-side application window displayed in a client desktop of the client system, the method comprising:

receiving, from the server system, a notification that the server-side application window is being resized in the remote desktop;

upon receiving the notification that the server-side application window is being resized in the remote desktop, checking whether the user is currently entering one or more input commands for resizing the client-side application window in the client desktop of the client system; and

if client system determines, upon receiving the notification that the server-side window is being resized in the remote desktop, that the user is currently entering one or more input commands for resizing the client-side application window:

sending, to the server system, a message that causes the server system to cancel the resizing of the server-side application window;

subsequently to sending the message that causes the server system to cancel the resizing of the server-side application window, allowing the user to resize the client-side application window in the client desktop via the one or more input commands without resizing the server-side application window; and

upon the user completing entering of the one or more input commands at the client system, sending a request to the server system for resizing the server-side application window according to a final size of the client-side application window in the client desktop,

wherein the server system resizes the server-side application window according to the final size of the client-side application window.

8. The non-transitory computer readable storage medium of claim 7 wherein a full window drag option is enabled in the remote desktop, which causes the server system to continuously redraw the entirety of the server-side application window in the remote desktop when the server-side application window is resized.

9. The non-transitory computer readable storage medium of claim 7 wherein, prior to allowing the user to resize the client-side application window in the client desktop, the method further comprises placing the client-side application window into a resizing state.

10. The non-transitory computer readable storage medium of claim 7 wherein a full window drag option is enabled in the client desktop, which causes the client system to continuously redraw the entirety of the client-side application window in the client desktop when the client-side application window is resized.

11. The non-transitory computer readable storage medium of claim 7 wherein the method further comprises, at a periodic interval during the resizing of the client-side application window by the user:

determining, by the client system, a current size of the client-side application window in the client desktop;

issuing, by the client system, a request to the server system for resizing the server-side application window in the remote desktop to match the current size of the client-side application window in the client desktop; and

in response to issuing the request, receiving, by the client system, a framebuffer update from the server system,

wherein an initial value for the periodic interval is preconfigured by the user.

12. A client system comprising:

a processor; and

a non-transitory computer readable medium having stored thereon program code for optimizing window resize actions for a remoted application, wherein the remoted application has a server-side application window running within a remote desktop of a server system, and wherein the server-side application window is made accessible to a user of the client system in the form of a client-side application window displayed in a client desktop of the client system, the program code causing the processor to:

receive, from the server system, a notification that the server-side application window is being resized in the remote desktop;

upon receiving the notification that the server-side application window is being resized in the remote desktop, check whether the user is currently entering one or more input commands for resizing the client-side application window in the client desktop of the client system; and

if the check is positive:

send, to the server system, a message that causes the server system to cancel the resizing of the server-side application window;

subsequently to sending the message that causes the server system to cancel the resizing of the server-side application window, allow the user to resize the client-side application window in the client desktop via the one or more input commands without resizing the server-side application window; and

upon the user completing entering of the one or more input commands at the client system, send a request to the server system for resizing the server-side application window according to a final size of the client-side application window in the client desktop,

wherein the server system resizes the server-side application window according to the final size of the client-side application window.

13. The client system of claim 12 wherein a full window drag option is enabled in the remote desktop, which causes the server system to continuously redraw the entirety of the server-side application window in the remote desktop when the server-side application window is resized.

14. The client system of claim 12 wherein, prior to allowing the user to resize the client-side application window in the client desktop, the program code further causes the processor to place the client-side application window into a resizing state.

15. The client system of claim 12 wherein a full window drag option is enabled in the client desktop, which causes the client system to continuously redraw the entirety of the client-side application window in the client desktop when the client-side application window is resized.

16. The client system of claim 12 wherein the program code further causes the processor to, at a periodic interval during the resizing of the client-side application window by the user:

determine a current size of the client-side application window in the client desktop;

issue a request to the server system for resizing the server-side application window in the remote desktop to match the current size of the client-side application window in the client desktop; and

in response to issuing the request, receive a framebuffer update from the server system,

wherein an initial value for the periodic interval is preconfigured by the user.

Assignments (4)
PATENT ASSIGNMENT Recorded Aug 5, 2024
From: VMWARE LLC
To: OMNISSA, LLC
Reel/Frame 068327/0365 →
SECURITY INTEREST Recorded Jul 3, 2024
From: OMNISSA, LLC
To: UBS AG, STAMFORD BRANCH
Reel/Frame 068118/0004 →
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0395 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 25, 2016
From: GROSS, ADAM GREGORY
To: VMWARE, INC
Reel/Frame 038262/0809 →