Go to file
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
.tx Add transifex configuration file 2012-02-15 09:29:06 +00:00
build-aux Import GNULIB rules for syntax checking code 2012-02-06 12:42:23 +00:00
data nsis: fix a few missing icons 2012-04-03 00:06:19 +02:00
icons build-sys: use git.mk to generate gitignore 2012-03-30 14:48:13 +02:00
m4 build-sys: use git.mk to generate gitignore 2012-03-30 14:48:13 +02:00
man build-sys: use git.mk to generate gitignore 2012-03-30 14:48:13 +02:00
plugin build-sys: use git.mk to generate gitignore 2012-03-30 14:48:13 +02:00
po Updated translations 2012-03-13 09:20:45 +00:00
src Fix close of VNC displays 2012-04-04 10:41:32 +01:00
.mailmap update .mailmap 2012-03-01 16:20:25 +01:00
acinclude.m4 Kill automake portability warnings. Use a config.h Cleanup misc build issues. Build with fatal compile warnings 2008-03-05 18:24:16 -05:00
AUTHORS Update AUTHORS file 2012-03-07 10:38:02 +00:00
autobuild.sh Import GNULIB rules for syntax checking code 2012-02-06 12:42:23 +00:00
autogen.sh build-sys: simplify autogen.sh 2012-04-01 20:09:16 +02:00
cfg.mk Add back compat for GObject 2.22 which lacks GBinding 2012-02-16 14:52:55 +00:00
ChangeLog Automatically generate changelog from GIT history during make dist 2011-11-07 12:42:15 +00:00
configure.ac build-sys: use git.mk to generate gitignore 2012-03-30 14:48:13 +02:00
COPYING Added COPYING/INSTALL files 2007-08-15 20:22:40 -04:00
git.mk build-sys: use git.mk to generate gitignore 2012-03-30 14:48:13 +02:00
GNUmakefile Import GNULIB rules for syntax checking code 2012-02-06 12:42:23 +00:00
intltool-extract.in Add support for i18n of the UI 2010-01-11 16:01:20 +00:00
intltool-merge.in Add support for i18n of the UI 2010-01-11 16:01:20 +00:00
intltool-update.in Add support for i18n of the UI 2010-01-11 16:01:20 +00:00
maint.mk Adjust POTFILES.in check to strip type prefix 2012-02-15 09:29:22 +00:00
Makefile.am build-sys: use git.mk to generate gitignore 2012-03-30 14:48:13 +02:00
mingw32-virt-viewer.spec.in Fix libvirt/SPICE min versions 2012-03-09 13:36:22 +00:00
NEWS Update NEWS for 0.5.2 release 2012-03-09 13:41:35 +00:00
README Fix libvirt/SPICE min versions 2012-03-09 13:36:22 +00:00
virt-viewer.spec.in Fix libvirt/SPICE min versions 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