diff -Nur /home/aho/CVS/skipstone/src/callbacks.c skipstone/src/callbacks.c --- /home/aho/CVS/skipstone/src/callbacks.c Mon Dec 10 17:11:57 2001 +++ skipstone/src/callbacks.c Thu Dec 13 22:47:51 2001 @@ -638,14 +638,13 @@ 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 Mon Dec 10 17:30:19 2001 +++ skipstone/src/support.c Thu Dec 13 22:49:50 2001 @@ -989,13 +989,19 @@ 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"); - if (skipstone->clip) - g_free(skipstone->clip); - skipstone->clip = g_strdup(href); + 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->is_notebook) { selection = gtk_selection_owner_set(skipstone->window, GDK_SELECTION_PRIMARY,