diff -Nur /home/aho/CVS/skipstone/src/callbacks.c skipstone/src/callbacks.c --- /home/aho/CVS/skipstone/src/callbacks.c Tue Dec 11 05:29:35 2001 +++ skipstone/src/callbacks.c Tue Dec 11 22:49:04 2001 @@ -638,14 +638,20 @@ void on_selection_get(GtkWidget *window, GtkSelectionData *selection_data, guint info, guint time_stamp, SkipStone *skipstone) { + gchar *clip; + D_ENTER; + /* if (!skipstone) skipstone = get_current_browser_from_notebook(); if (!skipstone) D_RETURN; if (!skipstone->clip || skipstone->clip == NULL) D_RETURN; + */ + + clip = gtk_object_get_data (GTK_OBJECT (window), "clipboard-link"); gtk_selection_data_set(selection_data, GDK_SELECTION_TYPE_STRING, - 8, skipstone->clip, strlen(skipstone->clip)); + 8, clip, strlen(clip)); D_RETURN; } diff -Nur /home/aho/CVS/skipstone/src/support.c skipstone/src/support.c --- /home/aho/CVS/skipstone/src/support.c Tue Dec 11 05:29:36 2001 +++ skipstone/src/support.c Tue Dec 11 22:44:23 2001 @@ -989,13 +989,24 @@ void copy_link_from_popup(GtkWidget *menuitem, SkipStone *skipstone) { - gchar *href; + gchar *href, *clip; gint selection; D_ENTER; href = gtk_object_get_data(GTK_OBJECT(menuitem), "link"); + /* clip = gtk_object_get_data(GTK_OBJECT(skipstone->window), "clipboard-link"); */ + if (href) { + if (!skipstone->is_notebook) + gtk_object_set_data_full (GTK_OBJECT(skipstone->window), "clipboard-link", + g_strdup(href), (GtkDestroyNotify) g_free); + else + gtk_object_set_data_full (GTK_OBJECT(main_window), "clipboard-link", + g_strdup(href), (GtkDestroyNotify) g_free); + } + /* if (skipstone->clip) g_free(skipstone->clip); skipstone->clip = g_strdup(href); + */ if (!skipstone->is_notebook) { selection = gtk_selection_owner_set(skipstone->window, GDK_SELECTION_PRIMARY,