diff options
author | Marc-André Lureau <marcandre.lureau@redhat.com> | 2011-03-15 16:21:47 +0100 |
---|---|---|
committer | Marc-André Lureau <marcandre.lureau@redhat.com> | 2011-03-15 16:21:50 +0100 |
commit | 07a3d7b2cd64686f17394b07a1fecce270005de0 (patch) | |
tree | 7add6461a28b11790aeee93596d2d0f83e283333 | |
parent | cbfc7475412c04c2f5b0d4adccdf3b4ab6830592 (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.c | 2 |
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); |