summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTristan Van Berkom <tristan.van.berkom@gmail.com>2010-03-14 15:23:55 -0400
committerTristan Van Berkom <tristan.van.berkom@gmail.com>2010-03-14 16:29:42 -0400
commite8c0920494151c603eca6a7decfb3509a66c8403 (patch)
tree93fed5839545699e81f6fe46ebbf651c932fdb68
parenta085bb1f0bcbd20723d181a5d7fa89f9ae56f92a (diff)
downloadgtk+-e8c0920494151c603eca6a7decfb3509a66c8403.tar.gz
Refixed patch for bug 612505.
New patch makes sure to update the display even when the GtkEntry's buffer is set to NULL, it also breaks the reference to the buffer in ->dispose() instead of ->finalize().
-rw-r--r--gtk/gtkentry.c12
1 files changed, 4 insertions, 8 deletions
diff --git a/gtk/gtkentry.c b/gtk/gtkentry.c
index a92e670eb1..16b7f2a7cb 100644
--- a/gtk/gtkentry.c
+++ b/gtk/gtkentry.c
@@ -2468,6 +2468,7 @@ gtk_entry_dispose (GObject *object)
gtk_entry_set_icon_tooltip_markup (entry, GTK_ENTRY_ICON_PRIMARY, NULL);
gtk_entry_set_icon_from_pixbuf (entry, GTK_ENTRY_ICON_SECONDARY, NULL);
gtk_entry_set_icon_tooltip_markup (entry, GTK_ENTRY_ICON_SECONDARY, NULL);
+ gtk_entry_set_buffer (entry, NULL);
G_OBJECT_CLASS (gtk_entry_parent_class)->dispose (object);
}
@@ -2510,11 +2511,6 @@ gtk_entry_finalize (GObject *object)
g_free (priv->im_module);
- /* COMPAT: entry->text is a deprecated field, and the allocation
- is owned by the buffer. */
-
- gtk_entry_set_buffer (entry, NULL);
-
G_OBJECT_CLASS (gtk_entry_parent_class)->finalize (object);
}
@@ -6692,9 +6688,6 @@ gtk_entry_set_buffer (GtkEntry *entry,
{
buffer_connect_signals (entry);
- gtk_editable_set_position (GTK_EDITABLE (entry), 0);
- gtk_entry_recompute (entry);
-
/* COMPAT: Deprecated. Not used. Setting these fields no longer necessary in GTK 3.x */
entry->text = (char*)gtk_entry_buffer_get_text (priv->buffer);
entry->text_length = gtk_entry_buffer_get_length (priv->buffer);
@@ -6711,6 +6704,9 @@ gtk_entry_set_buffer (GtkEntry *entry,
g_object_notify (obj, "invisible-char");
g_object_notify (obj, "invisible-char-set");
g_object_thaw_notify (obj);
+
+ gtk_editable_set_position (GTK_EDITABLE (entry), 0);
+ gtk_entry_recompute (entry);
}
/**