[Feature] Allow multiple VNC windows #132
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
This PR adds a new advanced setting (or configuration flag) -
multiple_vnc
to OXM so multiple VNC windows can be opened at the same time. By default the flag is set to False, so the behavior of OXM continues to be the same.Motivation and Context
My use case for OXM requires multiple VM VNC windows to be opened so I can perform network experiments and see the live communication between virtual machines. This is something I can achieve using Citrix XenCenter but not with OpenXenmanager. By default, OXM will remove any VNC session if the tab selected is different from "console". This PR changes this behavior by keeping dictionaries for the gtk-vnc objects, gtk windows (if undocked) and vnc pid's (osx). Also, under OSX, if you close the external VNC window OXM fails to close. Added a few changes to the "exiting" logic so OXM can close gracefully.
How Has This Been Tested?
It was extensively tested (manually) in OSX (using tigerVNC) and Linux (Arch Linux and Lubuntu). Some testing was done for Windows.
Screenshots (if appropriate):
Types of change
Roadmap
It would be great if this could be accepted and merged upstream so I don't have to keep a separate version. I plan to improve a bit the reboot (ctr+alt+del) logic if the vnc window is undocked in Linux. Right now, the window is being closed and the user has to manually select the console tab again to access the VNC. In the future I plan to restart the VNC session in the window itself like the XenServer client.