diff --git a/ChangeLog b/ChangeLog index af4d7cec48..e5d239b0b6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2008-12-30 Matthias Clasen + + * gtk/gtkentry.c: Avoid size allocation loops. + 2008-12-30 Matthias Clasen * gtk/gtkentry.c: Fix errors in property definitions and diff --git a/gtk/gtkentry.c b/gtk/gtkentry.c index 7da90a2e11..b2a38f0c7f 100644 --- a/gtk/gtkentry.c +++ b/gtk/gtkentry.c @@ -2488,8 +2488,6 @@ gtk_entry_realize (GtkWidget *widget) realize_icon_info (widget, i); } } - - gtk_widget_queue_resize (widget); } static void @@ -6191,8 +6189,6 @@ gtk_entry_ensure_pixbuf (GtkEntry *entry, if (GDK_IS_WINDOW (icon_info->window)) gdk_window_show (icon_info->window); - - gtk_widget_queue_resize (GTK_WIDGET (entry)); } @@ -7088,6 +7084,9 @@ gtk_entry_set_icon_from_pixbuf (GtkEntry *entry, gtk_entry_ensure_pixbuf (entry, icon_pos); + if (GTK_WIDGET_VISIBLE (entry)) + gtk_widget_queue_resize (GTK_WIDGET (entry)); + g_object_thaw_notify (G_OBJECT (entry)); } @@ -7149,6 +7148,9 @@ gtk_entry_set_icon_from_stock (GtkEntry *entry, gtk_entry_ensure_pixbuf (entry, icon_pos); + if (GTK_WIDGET_VISIBLE (entry)) + gtk_widget_queue_resize (GTK_WIDGET (entry)); + g_object_thaw_notify (G_OBJECT (entry)); } @@ -7213,6 +7215,9 @@ gtk_entry_set_icon_from_icon_name (GtkEntry *entry, gtk_entry_ensure_pixbuf (entry, icon_pos); + if (GTK_WIDGET_VISIBLE (entry)) + gtk_widget_queue_resize (GTK_WIDGET (entry)); + g_object_thaw_notify (G_OBJECT (entry)); } @@ -7274,6 +7279,9 @@ gtk_entry_set_icon_from_gicon (GtkEntry *entry, gtk_entry_ensure_pixbuf (entry, icon_pos); + if (GTK_WIDGET_VISIBLE (entry)) + gtk_widget_queue_resize (GTK_WIDGET (entry)); + g_object_thaw_notify (G_OBJECT (entry)); }