Daniel P. Berrange 831ebf5dab Fix close of VNC displays
When clicking the close button on a virt-viewer window with
a VNC session open, while the VNC session terminates, the
window does not go away.

The problem is that the virt_viewer_session_vnc_disconnected
method never gets invoked. The close button triggers a call
to virt_viewer_session_clear_displays which unrefs the
VirtViewerDisplayVnc instance. This in turn triggers a call
to gtk_container_destroy, which destroys all widgets it
contains, ie the VncDisplay * object.

With the VncDisplay object in its dispose phase, no signals
will ever be emitted, thus the 'vnc-disconnected' signal
never gets seen.

The design issue is that VirtViewerDisplayVnc is assuming
it owns the VncDisplay, whereas in fact the real owner is
the VirtViewerSessionVnc object.

The solution is to introduce a new virt_viewer_display_close
method which can be used to de-parent the widget before
VirtViewerDisplay is unref'd.

The VirtViewerSessionVnc object also needs to hold a full ref
on the VncDisplay object, not merely a floating reference

* virt-viewer-display-spice.c, virt-viewer-display.c,
  virt-viewer-display.h: Add virt_viewer_display_close
* virt-viewer-display-vnc.c: Deparent VNC widget in
  virt_viewer_display_close impl
* virt-viewer-session-vnc.c: Improve logging
* virt-viewer-session.c: Call virt_viewer_display_close
  before unrefing display
* virt-viewer-window.c: Improve logging

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2012-04-04 10:41:32 +01:00
2012-02-15 09:29:06 +00:00
2012-04-03 00:06:19 +02:00
2012-03-13 09:20:45 +00:00
2012-04-04 10:41:32 +01:00
2012-03-01 16:20:25 +01:00
2012-03-07 10:38:02 +00:00
2012-04-01 20:09:16 +02:00
2007-08-15 20:22:40 -04:00
2012-03-09 13:41:35 +00:00
2012-03-09 13:36:22 +00:00

  Virt Viewer
  ===========

Virt Viewer provides a graphical viewer for the guest OS
display. At this time is supports guest OS using the VNC
or SPICE protocols. Further protocols may be supported in
the future as user demand dicatates. The viewer can connect
directly to both local and remotely hosted guest OS, optionally
using SSL/TLS encryption.

Virt Viewer can be built with either GTK2 or GTK3, with the
default option currently being GTK2. The choice can be made
with:

   ./configure --with-gtk=3.0  (or =2.0)

Virt Viewer uses the GTK-VNC (>= 0.4.3) widget to provide a
display of the VNC protocol, which is available from

  http://gtk-vnc.sourceforge.net/

Virt Viewer uses the SPICE-GTK (>= 0.11) widget to provide a
display of the SPICE protocol, which is available from:

  http://spice-space.org/page/Spice-Gtk

Use of either SPICE-GTK or GTK-VNC can be disabled at time
of configure, with --without-gtk-vnc or --without-spice-gtk
respectively.

Virt Viewer uses libvirt to lookup information about the
guest OS display. This is available from

  http://libvirt.org/

Further information about the Virt Viewer application can be
found on the Virt Manager website:

  http://virt-manager.org/

Feedback should be directed to the mailing list at

  http://virt-manager.org/mailinglist.html

-- End
Description
The virtual machine console viewer application code
Readme 4.9 MiB
Languages
C 84.3%
Makefile 4.3%
Shell 3.8%
Meson 3.5%
Dockerfile 3.5%
Other 0.6%