On Tue, Jul 17, 2012 at 09:24:45PM +0200, Marc-André Lureau wrote: > Use virt_viewer_signal_connect_object(), a copy of telepathy > utility function tp_g_signal_connect_object(). This function > will take care of removing signal handler if any of emitter or > attached object are destroyed. > > The following patches will have this condition met, since there is no > longer 1-1 relation between channel and display. The channels can > continue to be around when some of the display are removed. > --- > src/virt-viewer-display-spice.c | 26 ++++----- > src/virt-viewer-util.c | 117 +++++++++++++++++++++++++++++++++++++++ > src/virt-viewer-util.h | 6 ++ > 3 files changed, 135 insertions(+), 14 deletions(-) > diff --git a/src/virt-viewer-util.h b/src/virt-viewer-util.h > index 3a40651..38c8078 100644 > --- a/src/virt-viewer-util.h > +++ b/src/virt-viewer-util.h > @@ -40,6 +40,12 @@ int virt_viewer_util_extract_host(const char *uristr, > char **user, > int *port); > > +gulong virt_viewer_signal_connect_object(gpointer instance, > + const gchar *detailed_signal, > + GCallback c_handler, > + gpointer gobject, > + GConnectFlags connect_flags); > + > #endif Superficially this looks like it tries todo the same as g_signal_connect_object ? http://developer.gnome.org/gobject/stable/gobject-Signals.html#g-signal-connect-object Does it avoids the flaws mentioned about that API ? Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|