From c8ee1927a566a0df59a3e73c40edbc3463c1b1e4 Mon Sep 17 00:00:00 2001 From: Tristan Van Berkom Date: Sun, 14 Mar 2010 15:23:55 -0400 Subject: [PATCH] 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(). --- gtk/gtkentry.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/gtk/gtkentry.c b/gtk/gtkentry.c index a92e670eb..16b7f2a7c 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); } /** -- 2.43.2