]> Pileus Git - ~andy/gtk/commitdiff
Refixed patch for bug 612505.
authorTristan Van Berkom <tristan.van.berkom@gmail.com>
Sun, 14 Mar 2010 19:23:55 +0000 (15:23 -0400)
committerTristan Van Berkom <tristan.van.berkom@gmail.com>
Sun, 4 Apr 2010 00:59:15 +0000 (20:59 -0400)
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

index a92e670eb1f6cfca28462ed160f924f804b56a20..16b7f2a7cb4ab377a1834e857dae1cebee41971c 100644 (file)
@@ -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);
 }
 
 /**