gtk_file_chooser_set_filter(GTK_FILE_CHOOSER(dialog), filter);
if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT) {
- GSList *filenames;
+ GSList *filenames, *fn_glist;
char *filename;
- filenames = gtk_file_chooser_get_filenames(GTK_FILE_CHOOSER(dialog));
+ filenames = fn_glist = gtk_file_chooser_get_filenames(GTK_FILE_CHOOSER(dialog));
GError *error = NULL;
while(filenames != NULL) {
g_free(filename);
filenames = g_slist_next(filenames);
}
- g_slist_free(filenames);
+ g_slist_free(fn_glist);
report_dives(FALSE);
}
gtk_widget_destroy(dialog);
gtk_window_set_default_icon_name ("subsurface");
}
}
- if (need_icon)
- gtk_window_set_icon_from_file(GTK_WINDOW(win), subsurface_icon_name(), NULL);
+ if (need_icon) {
+ const char *icon_name = subsurface_icon_name();
+ if (!access(icon_name, R_OK))
+ gtk_window_set_icon_from_file(GTK_WINDOW(win), icon_name, NULL);
+ }
g_signal_connect(G_OBJECT(win), "delete-event", G_CALLBACK(on_delete), NULL);
g_signal_connect(G_OBJECT(win), "destroy", G_CALLBACK(on_destroy), NULL);
main_window = win;