Citrix Virtual Apps - Mouse pointer looks big inside published application

Citrix Virtual Apps - Mouse pointer looks big inside published application

book

Article ID: CTX693252

calendar_today

Updated On:

Description

Administrators might notice that in a multimonitor setup where the main screen is set to 200% scaling and the secondary screen to 100% scaling, when the published application is moved from the 100% scaled monitor to the 200% scaled monitor, the Mouse pointer size becomes bigger as expected both inside and outside the published app. However If the application is moved back to the 100% scaled monitor, the mouse pointer inside the app remains the same size as in the 200% screen inside the published application. Outside the published application, the mouse pointer becomes smaller matching the 100% scaling. This problem is specific to applications that are hosted on Windows Server 2016 and cannot be reproduced on Windows 2019 hosted applications.

Environment

Citrix is not responsible for and does not endorse or accept any responsibility for the contents or your use of these third party Web sites. Citrix is providing these links to you only as a convenience, and the inclusion of any link does not imply endorsement by Citrix of the linked Web site. It is your responsibility to take precautions to ensure that whatever Web site you use is free of viruses or other harmful items.

Resolution

The CWA client notifies the VDA when the user has different resolutions in the multi-monitor setup. For the published application, the content is rendered via HDX graphics and seamless. The mouse cursor in this case is server rendered i.e. the OS is providing the dimensions. Graphics module picks up these values and renders the mouse cursor on the client side.

With Windows 2019, we receive the appropriate dimensions from the OS for the mouse cursor. But with Windows 2016, the dimensions look wrong and that needs to be investigated with Microsoft's assistance.


Problem Cause

Windows OS 2016 determines the mouse pointer dimensions.

Additional Information

The DrvSetPointerShape function is called by the Windows Graphics Device Interface (GDI) when it needs to update the shape of the cursor on the display. This typically happens in response to changes in the cursor's appearance due to user actions or system events.

Microsoft Documentation - https://learn.microsoft.com/en-us/windows/win32/api/winddi/nf-winddi-drvsetpointershape

Microsoft's Role:
Microsoft's Windows operating system, through its GDI subsystem, decides when to change the cursor based on user interactions, system events, or application requests. When a change is needed, GDI calls DrvSetPointerShape in the display driver to update the cursor shape on the screen.

Driver's Role:
The display driver, developed by Citrix, implements DrvSetPointerShape to handle the cursor change request from GDI. The driver updates the cursor's appearance on the display according to the parameters provided by GDI.

In summary, Microsoft determines when the cursor should change, and the driver (implemented by Citrix or another vendor) performs the actual work of changing the cursor's appearance on the screen.