entry: Avoid recursion in gtk_entry_ensure_layout
This was unintentional, and lead to a memory leak.
This commit is contained in:
@@ -7485,6 +7485,7 @@ gtk_entry_set_buffer (GtkEntry *entry,
|
||||
{
|
||||
GtkEntryPrivate *priv;
|
||||
GObject *obj;
|
||||
gboolean had_buffer = FALSE;
|
||||
|
||||
g_return_if_fail (GTK_IS_ENTRY (entry));
|
||||
|
||||
@@ -7498,6 +7499,7 @@ gtk_entry_set_buffer (GtkEntry *entry,
|
||||
|
||||
if (priv->buffer)
|
||||
{
|
||||
had_buffer = TRUE;
|
||||
buffer_disconnect_signals (entry);
|
||||
g_object_unref (priv->buffer);
|
||||
}
|
||||
@@ -7518,8 +7520,11 @@ gtk_entry_set_buffer (GtkEntry *entry,
|
||||
g_object_notify_by_pspec (obj, entry_props[PROP_INVISIBLE_CHAR_SET]);
|
||||
g_object_thaw_notify (obj);
|
||||
|
||||
gtk_editable_set_position (GTK_EDITABLE (entry), 0);
|
||||
gtk_entry_recompute (entry);
|
||||
if (had_buffer)
|
||||
{
|
||||
gtk_editable_set_position (GTK_EDITABLE (entry), 0);
|
||||
gtk_entry_recompute (entry);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user