mirror of
https://gitlab.uni-freiburg.de/opensourcevdi/win32-vd_agent
synced 2026-01-04 13:51:48 +00:00
On any change of the display settings, driven by client message or guest user, normalize all display positions to non-negative coordinates, and update total width and height of the virtual desktop. The bug was due to wrong handling of (non-primary) displays positioned on negative coordinates. Primary monitor is always located (in windows) in (0,0). When a secondary monitor is positioned above/to the left of the primary, it will have negative coordinate. This can be the case when guest display settings are changed either manually on the guest, or due to a message (auto-conf VD_AGENT_MONITORS_CONFIG) from the client to the agent. In VDAgent::handle_mouse_event(), mouse event is generated by scaling the received (x,y, display_id) to normalized absolute coordinates (0..0xffff) on the entire virtual desktop which contains all the displays. Keeping negative display coordinates, as received from the client, was mistakenly handled and generated wrong (sometimes even negative) coordinates. |
||
|---|---|---|
| .. | ||
| desktop_layout.cpp | ||
| desktop_layout.h | ||
| display_setting.cpp | ||
| display_setting.h | ||
| resource.h | ||
| vdagent.cpp | ||
| vdagent.rc | ||
| vdagent.vcproj | ||