diff options
author | Tristan Van Berkom <tristan.van.berkom@gmail.com> | 2010-03-14 15:23:55 -0400 |
---|---|---|
committer | Tristan Van Berkom <tristan.van.berkom@gmail.com> | 2010-03-14 16:29:42 -0400 |
commit | e8c0920494151c603eca6a7decfb3509a66c8403 (patch) | |
tree | 93fed5839545699e81f6fe46ebbf651c932fdb68 | |
parent | a085bb1f0bcbd20723d181a5d7fa89f9ae56f92a (diff) | |
download | gtk+-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.c | 12 |
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); } /** |