summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarc-André Lureau <marcandre.lureau@redhat.com>2011-03-15 16:21:47 +0100
committerMarc-André Lureau <marcandre.lureau@redhat.com>2011-03-15 16:21:50 +0100
commit07a3d7b2cd64686f17394b07a1fecce270005de0 (patch)
tree7add6461a28b11790aeee93596d2d0f83e283333
parentcbfc7475412c04c2f5b0d4adccdf3b4ab6830592 (diff)
gtk: fix crash when clipboard_primary owner change
Clean up handler when destroyed. /usr/local/stow/virt-manager/share/virt-manager/virt-manager.py:450: Warning: g_type_instance_get_private: assertion `instance != NULL && instance->g_class != NULL' failed gtk.main() Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 0x7ffff7fd4720 (LWP 19098)] 0x00007fffe8881ab2 in get_selection_from_clipboard (d=0x0, cb=0x1df8510) at spice-widget.c:996 996 if (cb == d->clipboard) { (gdb) bt at spice-widget.c:996 0x30f5750, data=0x1ea3000) at spice-widget.c:1114 0x0, n_param_values=2, param_values=0x1e96a90, invocation_hint= 0x7fffffffd280) at gclosure.c:767 detail=0, instance=0x1df8510, emission_return=0x0, instance_and_params= 0x1e96a90) at gsignal.c:3252 instance=<value optimized out>, signal_id=<value optimized out>,
-rw-r--r--gtk/spice-widget.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/gtk/spice-widget.c b/gtk/spice-widget.c
index 98920b9..bdfb2fe 100644
--- a/gtk/spice-widget.c
+++ b/gtk/spice-widget.c
@@ -202,6 +202,8 @@ static void spice_display_destroy(GtkObject *obj)
display);
g_signal_handlers_disconnect_by_func(d->clipboard, G_CALLBACK(clipboard_owner_change),
display);
+ g_signal_handlers_disconnect_by_func(d->clipboard_primary, G_CALLBACK(clipboard_owner_change),
+ display);
disconnect_main(display);
disconnect_display(display);