diff --git a/ChangeLog b/ChangeLog index 76737fe14a..1fd37f76e2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2006-04-28 Michael Natterer + + * gtk/gtktextbuffer.c (create_clipboard_contents_buffer): keep a + reference to the source buffer while the clipboard contents buffer + exists, because it is needed for serializing the contents buffer. + Makes copying from the contents buffer possible even after the + resp. text view is destroyed (for example when there is a + clipboard manager running on app exit) (bug #339195). + 2006-04-27 Behdad Esfahbod * gdk/gdkpango.c (gdk_pango_renderer_draw_glyphs): Cast to double diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index 76737fe14a..1fd37f76e2 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,12 @@ +2006-04-28 Michael Natterer + + * gtk/gtktextbuffer.c (create_clipboard_contents_buffer): keep a + reference to the source buffer while the clipboard contents buffer + exists, because it is needed for serializing the contents buffer. + Makes copying from the contents buffer possible even after the + resp. text view is destroyed (for example when there is a + clipboard manager running on app exit) (bug #339195). + 2006-04-27 Behdad Esfahbod * gdk/gdkpango.c (gdk_pango_renderer_draw_glyphs): Cast to double diff --git a/gtk/gtktextbuffer.c b/gtk/gtktextbuffer.c index ea04b885b0..628686c8b5 100644 --- a/gtk/gtktextbuffer.c +++ b/gtk/gtktextbuffer.c @@ -2967,6 +2967,13 @@ create_clipboard_contents_buffer (GtkTextBuffer *buffer) g_object_set_data (G_OBJECT (contents), I_("gtk-text-buffer-clipboard"), GINT_TO_POINTER (1)); + /* Ref the source buffer as long as the clipboard contents buffer + * exists, because it's needed for serializing the contents buffer. + * See http://bugzilla.gnome.org/show_bug.cgi?id=339195 + */ + g_object_ref (buffer); + g_object_weak_ref (G_OBJECT (contents), (GWeakNotify) g_object_unref, buffer); + return contents; }