keep a reference to the source buffer while the clipboard contents buffer

2006-04-28  Michael Natterer  <mitch@imendio.com>

	* 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).
This commit is contained in:
Michael Natterer 2006-04-28 12:13:04 +00:00 committed by Michael Natterer
parent 543f6cbbe6
commit 7e15674cd9
3 changed files with 25 additions and 0 deletions

View File

@ -1,3 +1,12 @@
2006-04-28 Michael Natterer <mitch@imendio.com>
* 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 <behdad@gnome.org>
* gdk/gdkpango.c (gdk_pango_renderer_draw_glyphs): Cast to double

View File

@ -1,3 +1,12 @@
2006-04-28 Michael Natterer <mitch@imendio.com>
* 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 <behdad@gnome.org>
* gdk/gdkpango.c (gdk_pango_renderer_draw_glyphs): Cast to double

View File

@ -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;
}