Background
Windows, along with other graphical user interfaces, divides an application window into two basic sections.
- The window border\title bar
- The client area (controlled by the application itself).
Desktop Window Manager (the Windows GUI compositor since Windows Vista) controls the window border and title bar, and the application controls its own client area.
Client Window Dragging
When a user drags the seamless window by the title bar, which is the most common way of moving a window, Receiver handles the window movement locally. It will communicate its last position before clicking and starting to the drag the window, and then upon release of the mouse button, will signal the VDA that the reposition is complete. At this point, the window is redrawn\repainted on the server side, and the VDA sends new images back to the client. This process minimizes resource and bandwidth usage when moving windows.
Server Side Window Dragging
Clicking and dragging the window by its client area circumvents this behavior. The VDA and receiver communicate back and forth for the duration of the entire journey of the window. The user sees the window’s contents and may see the VDA desktop background color as we follow the window position with the section of desktop being clipped and displayed on the endpoint.
NOTE: The VDA software will programmatically set “Show Window Contents while Dragging” to TRUE regardless of how this is set in Group Policy or via the Windows System Control Panel applet. We continuously show the contents of windows in order to send bitmaps via ICA to the client. This is expected behavior.
Special Note
In most applications, it is easy to determine where the title bar ends and the client area begins. Additionally, many applications do not allow the user to move the window by clicking and dragging in the client area. Applications such as Microsoft Office combine the menu bar (which is located in the client area) and title bar, and may allow users to drag the window by the client area, causing the server side redraw of the application’s path across the screen.
