mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-12-28 22:41:43 +00:00
entry: Avoid recursion in gtk_entry_ensure_layout
This was unintentional, and lead to a memory leak.
This commit is contained in:
parent
8b75268d1c
commit
d462c31233
@ -7151,6 +7151,7 @@ gtk_entry_set_buffer (GtkEntry *entry,
|
|||||||
{
|
{
|
||||||
GtkEntryPrivate *priv;
|
GtkEntryPrivate *priv;
|
||||||
GObject *obj;
|
GObject *obj;
|
||||||
|
gboolean had_buffer = FALSE;
|
||||||
|
|
||||||
g_return_if_fail (GTK_IS_ENTRY (entry));
|
g_return_if_fail (GTK_IS_ENTRY (entry));
|
||||||
|
|
||||||
@ -7164,6 +7165,7 @@ gtk_entry_set_buffer (GtkEntry *entry,
|
|||||||
|
|
||||||
if (priv->buffer)
|
if (priv->buffer)
|
||||||
{
|
{
|
||||||
|
had_buffer = TRUE;
|
||||||
buffer_disconnect_signals (entry);
|
buffer_disconnect_signals (entry);
|
||||||
g_object_unref (priv->buffer);
|
g_object_unref (priv->buffer);
|
||||||
}
|
}
|
||||||
@ -7184,8 +7186,11 @@ gtk_entry_set_buffer (GtkEntry *entry,
|
|||||||
g_object_notify_by_pspec (obj, entry_props[PROP_INVISIBLE_CHAR_SET]);
|
g_object_notify_by_pspec (obj, entry_props[PROP_INVISIBLE_CHAR_SET]);
|
||||||
g_object_thaw_notify (obj);
|
g_object_thaw_notify (obj);
|
||||||
|
|
||||||
gtk_editable_set_position (GTK_EDITABLE (entry), 0);
|
if (had_buffer)
|
||||||
gtk_entry_recompute (entry);
|
{
|
||||||
|
gtk_editable_set_position (GTK_EDITABLE (entry), 0);
|
||||||
|
gtk_entry_recompute (entry);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
Reference in New Issue
Block a user