Ref the new icons before unreffing the old ones. (#154468, Morten

2004-10-04  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkwindow.c (gtk_window_set_icon_list): Ref the new icons
	before unreffing the old ones.  (#154468, Morten Welinder)
This commit is contained in:
Matthias Clasen 2004-10-04 14:47:03 +00:00 committed by Matthias Clasen
parent 49ba32e195
commit 69a603cacc
5 changed files with 27 additions and 4 deletions

View File

@ -1,3 +1,8 @@
2004-10-04 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkwindow.c (gtk_window_set_icon_list): Ref the new icons
before unreffing the old ones. (#154468, Morten Welinder)
2004-10-03 Matthias Clasen <mclasen@redhat.com> 2004-10-03 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkiconview.c (gtk_icon_view_set_model): Reset pointers * gtk/gtkiconview.c (gtk_icon_view_set_model): Reset pointers

View File

@ -1,3 +1,8 @@
2004-10-04 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkwindow.c (gtk_window_set_icon_list): Ref the new icons
before unreffing the old ones. (#154468, Morten Welinder)
2004-10-03 Matthias Clasen <mclasen@redhat.com> 2004-10-03 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkiconview.c (gtk_icon_view_set_model): Reset pointers * gtk/gtkiconview.c (gtk_icon_view_set_model): Reset pointers

View File

@ -1,3 +1,8 @@
2004-10-04 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkwindow.c (gtk_window_set_icon_list): Ref the new icons
before unreffing the old ones. (#154468, Morten Welinder)
2004-10-03 Matthias Clasen <mclasen@redhat.com> 2004-10-03 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkiconview.c (gtk_icon_view_set_model): Reset pointers * gtk/gtkiconview.c (gtk_icon_view_set_model): Reset pointers

View File

@ -1,3 +1,8 @@
2004-10-04 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkwindow.c (gtk_window_set_icon_list): Ref the new icons
before unreffing the old ones. (#154468, Morten Welinder)
2004-10-03 Matthias Clasen <mclasen@redhat.com> 2004-10-03 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkiconview.c (gtk_icon_view_set_model): Reset pointers * gtk/gtkiconview.c (gtk_icon_view_set_model): Reset pointers

View File

@ -2653,11 +2653,11 @@ icon_list_from_theme (GtkWidget *widget,
icon_theme = gtk_icon_theme_get_for_screen (gtk_widget_get_screen (widget)); icon_theme = gtk_icon_theme_get_for_screen (gtk_widget_get_screen (widget));
sizes = gtk_icon_theme_get_icon_sizes (icon_theme, name); sizes = gtk_icon_theme_get_icon_sizes (icon_theme, name);
list = NULL;
list = NULL;
for (i = 0; sizes[i]; i++) for (i = 0; sizes[i]; i++)
{ {
/* FIXME /* FIXME
* We need an EWMH extension to handle scalable icons * We need an EWMH extension to handle scalable icons
* by passing their name to the WM. For now just use a * by passing their name to the WM. For now just use a
* fixed size of 48. * fixed size of 48.
@ -2672,6 +2672,8 @@ icon_list_from_theme (GtkWidget *widget,
list = g_list_append (list, icon); list = g_list_append (list, icon);
} }
g_free (sizes);
return list; return list;
} }
@ -2852,14 +2854,15 @@ gtk_window_set_icon_list (GtkWindow *window,
if (info->icon_list == list) /* check for NULL mostly */ if (info->icon_list == list) /* check for NULL mostly */
return; return;
g_list_foreach (list,
(GFunc) g_object_ref, NULL);
g_list_foreach (info->icon_list, g_list_foreach (info->icon_list,
(GFunc) g_object_unref, NULL); (GFunc) g_object_unref, NULL);
g_list_free (info->icon_list); g_list_free (info->icon_list);
info->icon_list = g_list_copy (list); info->icon_list = g_list_copy (list);
g_list_foreach (info->icon_list,
(GFunc) g_object_ref, NULL);
g_object_notify (G_OBJECT (window), "icon"); g_object_notify (G_OBJECT (window), "icon");