diff --git a/src/gnome-utils/gnc-gnome-utils.c b/src/gnome-utils/gnc-gnome-utils.c index 2febc4fdd7..724b1cfb83 100644 --- a/src/gnome-utils/gnc-gnome-utils.c +++ b/src/gnome-utils/gnc-gnome-utils.c @@ -196,7 +196,6 @@ gnc_gtk_add_rc_file (void) void gnc_gnome_init (int argc, char **argv, const char * version) { - char *fullname; GError *error = NULL; gchar *prefix = gnc_path_get_prefix (); gchar *pkgsysconfdir = gnc_path_get_pkgsysconfdir (); @@ -226,14 +225,38 @@ gnc_gnome_init (int argc, char **argv, const char * version) gtk_widget_set_default_colormap (gdk_rgb_get_colormap ()); /* use custom icon */ - fullname = gnc_gnome_locate_pixmap ("gnucash-icon.png"); - if (fullname) { - gtk_window_set_default_icon_from_file (fullname, &error); - g_free(fullname); - if (error) { - PERR ("Could not set default icon: %s", error->message); - g_error_free (error); + { + int idx; + char *icon_filenames[] = {"gnucash-icon-16x16.png", + "gnucash-icon-32x32.png", + "gnucash-icon-48x48.png", + NULL}; + GList *icons = NULL; + char *fullname, *name_iter; + + for (idx = 0; icon_filenames[idx] != NULL; idx++) { + GdkPixbuf *buf = NULL; + + fullname = gnc_gnome_locate_pixmap(icon_filenames[idx]); + if (fullname == NULL) { + g_warning("couldn't find icon file [%s]", icon_filenames[idx]); + continue; + } + + buf = gnc_gnome_get_gdkpixbuf(fullname); + if (buf == NULL) + { + g_warning("error loading image from [%s]", fullname); + g_free(fullname); + continue; + } + g_free(fullname); + icons = g_list_append(icons, buf); } + + gtk_window_set_default_icon_list(icons); + g_list_foreach(icons, (GFunc)g_object_unref, NULL); + g_list_free(icons); } druid_gconf_install_check_schemas(); diff --git a/src/gnome-utils/gnc-main-window.c b/src/gnome-utils/gnc-main-window.c index 286a7baa09..090be90fdf 100644 --- a/src/gnome-utils/gnc-main-window.c +++ b/src/gnome-utils/gnc-main-window.c @@ -3458,7 +3458,7 @@ gnc_main_window_cmd_help_about (GtkAction *action, GncMainWindow *window) gchar **authors, **documenters, *license, *message; GdkPixbuf *logo; - logo = gnc_gnome_get_gdkpixbuf ("appicon.png"); + logo = gnc_gnome_get_gdkpixbuf ("gnucash-icon-48x48.png"); authors = get_file_strsplit("doc/AUTHORS"); documenters = get_file_strsplit("doc/DOCUMENTERS"); diff --git a/src/pixmaps/Makefile.am b/src/pixmaps/Makefile.am index b34310040c..daa240cedc 100644 --- a/src/pixmaps/Makefile.am +++ b/src/pixmaps/Makefile.am @@ -1,7 +1,6 @@ gncpixmapdir = ${GNC_PIXMAP_DIR} gncpixmap_DATA = \ - appicon.png \ gnc-account-16.png \ gnc-account-delete-16.png \ gnc-account-delete.png \ @@ -29,13 +28,17 @@ gncpixmap_DATA = \ gnc-transfer-16.png \ gnc-transfer.png \ gnucash-icon.ico \ - gnucash-icon.png \ + gnucash-icon-16x16.png \ + gnucash-icon-32x32.png \ + gnucash-icon-48x48.png \ gnucash_splash.png \ stock_split_title.png \ stock_split_watermark.png gncicondir = ${datadir}/pixmaps -gncicon_DATA = gnucash-icon.png +gncicon_DATA = gnucash-icon-16x16.png \ + gnucash-icon-32x32.png \ + gnucash-icon-48x48.png EXTRA_DIST = \ ${gncpixmap_DATA} ${gncicon_DATA} diff --git a/src/pixmaps/appicon.png b/src/pixmaps/appicon.png deleted file mode 100644 index 28daba1bc4..0000000000 Binary files a/src/pixmaps/appicon.png and /dev/null differ diff --git a/src/pixmaps/gnucash-icon-16x16.png b/src/pixmaps/gnucash-icon-16x16.png new file mode 100644 index 0000000000..1d858b10d2 Binary files /dev/null and b/src/pixmaps/gnucash-icon-16x16.png differ diff --git a/src/pixmaps/gnucash-icon-32x32.png b/src/pixmaps/gnucash-icon-32x32.png new file mode 100644 index 0000000000..c2c2494797 Binary files /dev/null and b/src/pixmaps/gnucash-icon-32x32.png differ diff --git a/src/pixmaps/gnucash-icon-48x48.png b/src/pixmaps/gnucash-icon-48x48.png new file mode 100644 index 0000000000..84a966cd9f Binary files /dev/null and b/src/pixmaps/gnucash-icon-48x48.png differ diff --git a/src/pixmaps/gnucash-icon.ico b/src/pixmaps/gnucash-icon.ico index 6c185a83ff..fa1cacf6b9 100644 Binary files a/src/pixmaps/gnucash-icon.ico and b/src/pixmaps/gnucash-icon.ico differ diff --git a/src/pixmaps/gnucash-icon.png b/src/pixmaps/gnucash-icon.png deleted file mode 100644 index 28daba1bc4..0000000000 Binary files a/src/pixmaps/gnucash-icon.png and /dev/null differ