- While adjusting the guest's monitor configuration, the SPICE guest agent could fail to set the resolution when it switched to full-screen mode, which left the guest's monitor configuration in an inconsistent state. This happened because the agent did not handle situations when the guest's video memory was exhausted. This update fixes the issue by reverting the guest's monitor configuration to the previous state when the agent fails to adjust the guest monitor configuration.
- The SPICE guest agent previously expected the guest's monitor configuration to be always continuous, and attempted to establish and maintain connections with display windows in ascending order (that is display 1, 2, 3, ...). The user was thus unable to open displays out of order and choose which display would be closed when closing a display window. The problem has been fixed by sending a sparse monitor configuration to the agent, which allows specifying of the display that is to be open or closed. Monitors to be disabled are configured as 0x0 sized monitors in the sparse monitor configuration.
- The user session spice-vdagent process could terminate unexpectedly when the spice-vdagentd daemon was restarted after performing certain tasks such as resizing the window, copying and pasting data and changing to full-screen mode. This happened because the SPICE guest agent attempted to free already-freed memory upon a spice-vdguestd restart. The agent now frees the memory correctly, and the user session spice-vdagent process thus no longer crashes in this scenario.
- The SPICE guest agent for Linux logged warning messages when using multiple monitors per single qxl device, which is unnecessary since spice-vdagent supports such configurations. The spice-vdagentd daemon has been modified so the warning messages no longer occur in the log.
- When running the SPICE guest agent on the system without the virtio channel, the agent emitted inadvertent error messages about a missing virtio device. This update fixes this problem by removing the respective syslog() call from the code and the error messages no longer occur in the system log in this situation.
- When the user reconnected to a remote-viewer window after closing it while copying a large amount of data from the client to the guest, the copy-paste function stopped working. Furthermore, the user were unable to call the context menu by clicking the left mouse button. This happened because the SPICE guest agent did not release the clipboard in this situation. The agent has been modified to properly release clipboard and the problem no longer occurs.
- The SPICE guest agent now provides support ensuring correct translation of end-of-line sequences when the client run on different operating system than is the guest's operating systems (for example, when running a Windows client and a Linux guest).
- This update adds support for setups with multiple X11 screens. Such a setup can be achieved using multiple qxl devices where each device is mapped to a separate screen. This setup brings the following limitations: only one monitor can be used per X11 screen (a qxl device), all monitors must have the same resolution, and resolution synchronization has to be done on guest machines since no SPICE client is present.
- A new "-X" command-line option has been added to spice-vdagent, which allows disabling the ConsoleKit framework and the systemd-logind service integration at runtime for setups where these services are not used.