[gtk+] gtkcellrenderertext: Sink floating entry before using as signal argument
- From: Simon Feltman <sfeltman src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] gtkcellrenderertext: Sink floating entry before using as signal argument
- Date: Tue, 12 Feb 2013 02:04:22 +0000 (UTC)
commit 283c9746808fed7b219e57b056cad8cc5fc7bb88
Author: Simon Feltman <sfeltman src gnome org>
Date: Thu Feb 7 23:03:52 2013 -0800
gtkcellrenderertext: Sink floating entry before using as signal argument
Sink the GtkEntry assigned to the private structure of GtkCellRendererText
before signals containing it as an argument are sent out. This keeps
language bindings from sinking the reference and then destroying the entry
when the signal closure is finished.
https://bugzilla.gnome.org/show_bug.cgi?id=693400
gtk/gtkcellrenderertext.c | 6 +++++-
1 files changed, 5 insertions(+), 1 deletions(-)
---
diff --git a/gtk/gtkcellrenderertext.c b/gtk/gtkcellrenderertext.c
index fcb3f1b..31b0413 100644
--- a/gtk/gtkcellrenderertext.c
+++ b/gtk/gtkcellrenderertext.c
@@ -751,6 +751,8 @@ gtk_cell_renderer_text_finalize (GObject *object)
if (priv->language)
g_object_unref (priv->language);
+ g_clear_object (&priv->entry);
+
G_OBJECT_CLASS (gtk_cell_renderer_text_parent_class)->finalize (object);
}
@@ -1915,7 +1917,7 @@ gtk_cell_renderer_text_editing_done (GtkCellEditable *entry,
priv = GTK_CELL_RENDERER_TEXT (data)->priv;
- priv->entry = NULL;
+ g_clear_object (&priv->entry);
if (priv->focus_out_id > 0)
{
@@ -2047,6 +2049,8 @@ gtk_cell_renderer_text_start_editing (GtkCellRenderer *cell,
gtk_cell_renderer_get_alignment (cell, &xalign, &yalign);
priv->entry = gtk_entry_new ();
+ g_object_ref_sink (G_OBJECT (priv->entry));
+
gtk_entry_set_has_frame (GTK_ENTRY (priv->entry), FALSE);
gtk_entry_set_alignment (GTK_ENTRY (priv->entry), xalign);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]