Remote Desktop Window Move Latency Reduction
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
High network latency during app remoting leads to noticeable delays and jittery window movements in remoted applications, especially when window move actions are initiated outside the titlebar area, as seen in web browsers, causing a poor user experience.
Innovation Solution
The client system receives a notification when the application window starts moving and cancels the movement on the server side, allowing the user to move the client-side window independently, synchronizing only after the action is completed, and displays the window contents by copying a fixed source rectangle from framebuffer updates.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If the user initiates a window move action on the client-side application window, then the window position should be updated in real-time, but high network latency causes noticeable delays and jittery movements
Solution Approach 1:
The client system performs preliminary actions by sending a move cancel command to the server system before the window move action is completed. This preliminary action freezes the server-side application window position, allowing the client-side window to move smoothly without waiting for continuous position updates from the server, thereby reducing the perceived latency during window movement.
2Ease of operation
If the client system continuously updates the window position during movement, then the window movement appears smooth, but network bandwidth is consumed and latency increases
Solution Approach 1:
The patent extracts the window movement operation from the network-dependent update cycle. By freezing the server-side window position and allowing independent client-side movement, the solution removes the need for continuous network updates during the move action, thereby reducing network bandwidth consumption while maintaining smooth visual feedback on the client side.
3Manufacturing precision
If the server system processes each window move increment, then the window position is accurately updated, but the user experiences noticeable delay in each incremental movement
Solution Approach 1:
The client system sends a move cancel command as a preliminary action to freeze the server-side window position before the user completes the drag operation. This allows the client to render smooth window movement locally without waiting for the server to process each incremental position update, thereby eliminating the perceptible delay while maintaining position accuracy at the final destination.
4Adaptability or versatility
If the application allows window move actions to be initiated outside the titlebar area, then the application is more versatile, but the titlebar-based optimization approach is insufficient
Solution Approach 1:
The patent implements a universal optimization approach that works regardless of where the user initiates the window move action. By using a move cancel command mechanism that freezes the server-side window position at the start of any drag operation (whether from titlebar or elsewhere), the solution provides consistent optimization coverage for all window move initiation methods, making it universally applicable to different application behaviors.
Data Source
AI summary
Techniques for optimizing window move actions for a remoted application are provided, where the remoted application has an application window running within a remote desktop of a server system, and where the 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. In one embodiment, the client system can receive from the server system a notification that the application window has begun moving in the remote desktop, and can determine that the user is currently entering one or more input commands for moving the client-side application window in the client desktop. The client system can further send a command to the server system for stopping the movement of the application window in the remote desktop, such that the application window is fixed in a stationary position. The client system can then allow the user to continue moving the client-side application window in the client desktop, while the application window remains in the stationary position in the remote desktop.


