+static void
+psppire_syntax_window_dispose (GObject *obj)
+{
+ PsppireSyntaxWindow *sw = (PsppireSyntaxWindow *)obj;
+
+ GtkClipboard *clip_selection;
+ GtkClipboard *clip_primary;
+
+ if (sw->dispose_has_run)
+ return;
+
+ clip_selection = gtk_widget_get_clipboard (GTK_WIDGET (sw), GDK_SELECTION_CLIPBOARD);
+ clip_primary = gtk_widget_get_clipboard (GTK_WIDGET (sw), GDK_SELECTION_PRIMARY);
+
+ g_signal_handler_disconnect (clip_primary, sw->sel_handler);
+
+ g_signal_handler_disconnect (clip_selection, sw->ps_handler);
+
+ /* Make sure dispose does not run twice. */
+ sw->dispose_has_run = TRUE;
+
+ /* Chain up to the parent class */
+ G_OBJECT_CLASS (parent_class)->dispose (obj);
+}
+
+
+