# HG changeset patch # User Olaf Wintermann # Date 1728233147 -7200 # Node ID 216d8912714c6c138e91a9610796189d636cfe99 # Parent 3968180cdfb01ec25e763c2826097525f99bfec0 fix file icon and fix crash if a list icon is NULL diff -r 3968180cdfb0 -r 216d8912714c ui/gtk/image.c --- a/ui/gtk/image.c Sun Oct 06 12:19:40 2024 +0200 +++ b/ui/gtk/image.c Sun Oct 06 18:45:47 2024 +0200 @@ -117,7 +117,7 @@ } UiIcon* ui_fileicon(size_t size) { - return ui_icon("application-x-generic", size); + return ui_icon("file", size); } UiIcon* ui_icon_unscaled(const char *name, int size) { diff -r 3968180cdfb0 -r 216d8912714c ui/gtk/list.c --- a/ui/gtk/list.c Sun Oct 06 12:19:40 2024 +0200 +++ b/ui/gtk/list.c Sun Oct 06 18:45:47 2024 +0200 @@ -114,20 +114,24 @@ case UI_ICON_TEXT_FREE: { UiIcon *icon = data; #if GTK_MAJOR_VERSION >= 4 - GValue iconvalue = G_VALUE_INIT; - g_value_init(&iconvalue, G_TYPE_OBJECT); - g_value_set_object(&iconvalue, ui_icon_pixbuf(icon)); - gtk_list_store_set_value(store, &iter, c, &iconvalue); + if(icon) { + GValue iconvalue = G_VALUE_INIT; + g_value_init(&iconvalue, G_TYPE_OBJECT); + g_value_set_object(&iconvalue, ui_icon_pixbuf(icon)); + gtk_list_store_set_value(store, &iter, c, &iconvalue); + } #else GValue pixbufvalue = G_VALUE_INIT; - if(!icon->pixbuf && icon->info) { - GError *error = NULL; - GdkPixbuf *pixbuf = gtk_icon_info_load_icon(icon->info, &error); - icon->pixbuf = pixbuf; + if(icon) { + if(!icon->pixbuf && icon->info) { + GError *error = NULL; + GdkPixbuf *pixbuf = gtk_icon_info_load_icon(icon->info, &error); + icon->pixbuf = pixbuf; + } + g_value_init(&pixbufvalue, G_TYPE_OBJECT); + g_value_set_object(&pixbufvalue, icon->pixbuf); + gtk_list_store_set_value(store, &iter, c, &pixbufvalue); } - g_value_init(&pixbufvalue, G_TYPE_OBJECT); - g_value_set_object(&pixbufvalue, icon->pixbuf); - gtk_list_store_set_value(store, &iter, c, &pixbufvalue); #endif c++;