aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthew Barnes <mbarnes@redhat.com>2009-11-20 03:49:09 +0800
committerMatthew Barnes <mbarnes@redhat.com>2009-11-20 03:51:11 +0800
commitf11f1c477dfbdbe666ad5627ad44ac95bd7c816f (patch)
treeddd0012dd490f35e634dfc74f682a6cd3e44c4a2
parentc83ebe7180f5e62c1d2d9df3b542cad52726187a (diff)
downloadgsoc2013-evolution-f11f1c477dfbdbe666ad5627ad44ac95bd7c816f.tar.gz
gsoc2013-evolution-f11f1c477dfbdbe666ad5627ad44ac95bd7c816f.tar.zst
gsoc2013-evolution-f11f1c477dfbdbe666ad5627ad44ac95bd7c816f.zip
Kill Evolution's icon cache once and for all.
GTK+ already does this. Eliminates e_icon_factory_init() and e_icon_factory_shutdown().
-rw-r--r--art/Makefile.am2
-rw-r--r--art/broken-image-16.xpm61
-rw-r--r--art/broken-image-24.xpm169
-rw-r--r--calendar/gui/alarm-notify/notify-main.c3
-rw-r--r--configure.ac36
-rw-r--r--doc/reference/shell/tmpl/e-icon-factory.sgml14
-rw-r--r--doc/reference/shell/tmpl/e-shell-content.sgml5
-rw-r--r--doc/reference/shell/tmpl/eshell-unused.sgml12
-rw-r--r--e-util/e-icon-factory.c234
-rw-r--r--e-util/e-icon-factory.h2
-rw-r--r--shell/Makefile.am1
-rw-r--r--shell/main.c7
12 files changed, 42 insertions, 504 deletions
diff --git a/art/Makefile.am b/art/Makefile.am
index 1404f37491..9c39dbf762 100644
--- a/art/Makefile.am
+++ b/art/Makefile.am
@@ -7,8 +7,6 @@ EXTRA_DIST = \
ChangeLog \
ChangeLog.pre-1-4 \
README \
- broken-image-16.xpm \
- broken-image-24.xpm \
empty.xpm \
jump.xpm \
$(images_DATA)
diff --git a/art/broken-image-16.xpm b/art/broken-image-16.xpm
deleted file mode 100644
index b20b942bc5..0000000000
--- a/art/broken-image-16.xpm
+++ /dev/null
@@ -1,61 +0,0 @@
-/* XPM */
-static const gchar *broken_image_16_xpm[] = {
-"16 16 42 1",
-" c None",
-". c #000000",
-"+ c #FEFEFE",
-"@ c #FDFDFD",
-"# c #E0E0E0",
-"$ c #C1C1C1",
-"% c #F1F1F1",
-"& c #C3C3C3",
-"* c #FBFBFB",
-"= c #A8A8A8",
-"- c #ADADAD",
-"; c #767676",
-"> c #5D5D5D",
-", c #404040",
-"' c #F0F0F0",
-") c #E2E2E2",
-"! c #858585",
-"~ c #4B4B49",
-"{ c #161616",
-"] c #EFEFEF",
-"^ c #EEEEEE",
-"/ c #C5C5C5",
-"( c #DF421E",
-"_ c #ECECEC",
-": c #C4C4C4",
-"< c #EBEBEB",
-"[ c #EDEDED",
-"} c #EAEAEA",
-"| c #E8E8E8",
-"1 c #C0C0C0",
-"2 c #E7E7E7",
-"3 c #BFBFBF",
-"4 c #E6E6E6",
-"5 c #E5E5E5",
-"6 c #BEBEBE",
-"7 c #E4E4E4",
-"8 c #BDBDBD",
-"9 c #E3E3E3",
-"0 c #BBBBBB",
-"a c #C2C2C2",
-"b c #BCBCBC",
-"c c #A0A0A0",
-" ......... ",
-" .++++++@#$. ",
-" .+%%%%%%&*=. ",
-" .+%%%%%%-;>,. ",
-" .+%%%%%')!~{. ",
-" .+%]]]]]]^^/. ",
-" .+]]((^((^_:. ",
-" .@^^(((((^<&. ",
-" .@[__(((}}}$. ",
-" .@<|(((((||1. ",
-" .@}}((|((223. ",
-" .@|444444456. ",
-" .@2244455778. ",
-" .@4555779990. ",
-" .a888bb0000c. ",
-" ........... "};
diff --git a/art/broken-image-24.xpm b/art/broken-image-24.xpm
deleted file mode 100644
index e6c31277a9..0000000000
--- a/art/broken-image-24.xpm
+++ /dev/null
@@ -1,169 +0,0 @@
-/* XPM */
-static const gchar *broken_image_24_xpm[] = {
-"24 24 142 2",
-" c None",
-". c #000000",
-"+ c #D3D3D3",
-"@ c #F6F6F6",
-"# c #FFFFFF",
-"$ c #F9F9F9",
-"% c #DADADA",
-"& c #585858",
-"* c #C7C7C7",
-"= c #D1D1D1",
-"- c #D6D6D6",
-"; c #B2B2B2",
-"> c #D9D9D9",
-", c #D8D8D8",
-"' c #DDDDDD",
-") c #C0C0C0",
-"! c #E1E1E1",
-"~ c #F0F0F0",
-"{ c #9B9B9B",
-"] c #D4D4D4",
-"^ c #FEFEFE",
-"/ c #FDFDFD",
-"( c #FCFCFB",
-"_ c #FBFBFB",
-": c #AFAFAE",
-"< c #E9E9E9",
-"[ c #DFDFDF",
-"} c #8F8F8F",
-"| c #FAFAF9",
-"1 c #F9F9F8",
-"2 c #A4A4A3",
-"3 c #F4F4F4",
-"4 c #CFCFCF",
-"5 c #A2A2A2",
-"6 c #D5D5D5",
-"7 c #F8F8F7",
-"8 c #F8F7F6",
-"9 c #9E9E9E",
-"0 c #F7F6F5",
-"a c #F6F6F4",
-"b c #F4F3F2",
-"c c #DEDDDC",
-"d c #D3D2D0",
-"e c #B7B7B5",
-"f c #9F9E9D",
-"g c #706F6F",
-"h c #65625A",
-"i c #F5F4F3",
-"j c #F2F2F0",
-"k c #E4E4E2",
-"l c #DAD9D7",
-"m c #D8D8D6",
-"n c #E3E3E1",
-"o c #AFAEAC",
-"p c #88847B",
-"q c #D3D2D1",
-"r c #DF421E",
-"s c #F3F3F1",
-"t c #EEEDEB",
-"u c #EDECEA",
-"v c #E9E8E6",
-"w c #EEEEED",
-"x c #C4C3C2",
-"y c #8F8A81",
-"z c #F6F5F4",
-"A c #D0D0CE",
-"B c #ECEBE9",
-"C c #EAE9E7",
-"D c #E5E4E2",
-"E c #D2D1CE",
-"F c #8D887E",
-"G c #CECDCD",
-"H c #F0F0EE",
-"I c #EFEFED",
-"J c #F1F0EE",
-"K c #F0EFED",
-"L c #EFEEEC",
-"M c #E8E7E5",
-"N c #E5E4E1",
-"O c #E4E3E0",
-"P c #E1DFDC",
-"Q c #979288",
-"R c #A49E93",
-"S c #CBCBC9",
-"T c #E7E6E3",
-"U c #E3E2DF",
-"V c #E2E0DD",
-"W c #E0DFDB",
-"X c #A19C90",
-"Y c #EDEDEB",
-"Z c #C9C8C7",
-"` c #EBEAE8",
-" . c #E9E8E5",
-".. c #E6E4E1",
-"+. c #E3E2DE",
-"@. c #DFDEDA",
-"#. c #DDDCD8",
-"$. c #A19B90",
-"%. c #C6C5C3",
-"&. c #E8E7E4",
-"*. c #E7E5E2",
-"=. c #E4E3DF",
-"-. c #DEDDD9",
-";. c #DCDBD7",
-">. c #C3C2C0",
-",. c #E6E5E2",
-"'. c #E5E4E0",
-"). c #E2E1DD",
-"!. c #EDECEB",
-"~. c #D9D7D3",
-"{. c #9F998D",
-"]. c #C1C0BD",
-"^. c #E4E2DF",
-"/. c #E1E0DC",
-"(. c #DDDBD7",
-"_. c #DCDAD6",
-":. c #D8D6D2",
-"<. c #9E988D",
-"[. c #EDEDED",
-"}. c #E1E0DD",
-"|. c #D6D4D2",
-"1. c #EBEBE8",
-"2. c #EAE8E6",
-"3. c #E6E5E3",
-"4. c #F1F1EF",
-"5. c #D7D5D1",
-"6. c #9D978B",
-"7. c #E1DFDB",
-"8. c #E0DEDA",
-"9. c #DEDCD8",
-"0. c #D7D6D1",
-"a. c #D5D3CE",
-"b. c #9B958A",
-"c. c #999891",
-"d. c #A39E92",
-"e. c #A39D92",
-"f. c #A39D91",
-"g. c #A29C90",
-"h. c #A19B8F",
-"i. c #9D978C",
-"j. c #9B968A",
-"k. c #676359",
-" ",
-" . . . . . . . . . . . . . ",
-" . + @ # # # # # # # # $ % & . ",
-" . @ # # # # # # # # # # * = - . ",
-" . # # ; > > > > , > , ' ) ! ~ { . ",
-" . # # ] # # ^ / ( / ( _ : < # [ } . ",
-" . # # > ^ / ( _ | _ | 1 2 ~ # 3 4 5 . ",
-" . # ^ 6 ( _ | 1 7 1 7 8 9 . . . . . . . ",
-" . # ( 6 | 1 7 8 0 8 0 a b c d e f g h . ",
-" . # | + 7 8 0 a i a i b j k l m n o p . ",
-" . # 7 q 0 a i r r b s r r t u v w x y . ",
-" . # z A b b s j r r r r t B C D i E F . ",
-" . # b G j H I J K r r L B M N O I P Q . ",
-" . # b G j H I J r r r r B M N O I P R . ",
-" . # H S I L t r r u u r r T U V L W X . ",
-" . # Y Z B B B ` .` . .N ..+.@.Y #.$.. ",
-" . # ` %.v M &.&.T &.T *.=.+.W -.u ;.$.. ",
-" . # T >.,.,.N ..'...'.=.).W -.;.!.~.{.. ",
-" . $ O ].+.^.=.).+.).+././.-.(._.t :.<.. ",
-" . [.}.|.1.1.u 1.B 1.B ` ` 2. .3.4.5.6.. ",
-" . = 7.8.@.-.W -.8.-.8.9.9._._.:.0.a.b.. ",
-" . c.d.R e.f.e.X g.X g.h.$.{.{.i.i.j.k.. ",
-" . . . . . . . . . . . . . . . . . . ",
-" "};
diff --git a/calendar/gui/alarm-notify/notify-main.c b/calendar/gui/alarm-notify/notify-main.c
index e0014099f8..71fee19537 100644
--- a/calendar/gui/alarm-notify/notify-main.c
+++ b/calendar/gui/alarm-notify/notify-main.c
@@ -35,7 +35,6 @@
#include <libedataserver/e-source.h>
#include <libedataserverui/e-passwords.h>
-#include "e-util/e-icon-factory.h"
#include "e-util/e-util-private.h"
#include "alarm.h"
#include "alarm-queue.h"
@@ -61,8 +60,6 @@ main (gint argc, gchar **argv)
if (unique_app_is_running (app))
goto exit;
- e_icon_factory_init ();
-
alarm_notify_service = alarm_notify_new ();
/* FIXME Ideally we should not use camel libraries in calendar,
diff --git a/configure.ac b/configure.ac
index 56886b91df..51e3e02e63 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1394,9 +1394,6 @@ AC_SUBST(privdatadir)
privincludedir='${includedir}'/evolution-$BASE_VERSION
AC_SUBST(privincludedir)
-componentdir="$privlibdir/components"
-AC_SUBST(componentdir)
-
moduledir="$privlibdir/modules"
AC_SUBST(moduledir)
@@ -1406,12 +1403,12 @@ AC_SUBST(uidir)
evolutionhelpdir="$privdatadir/help"
AC_SUBST(evolutionhelpdir)
+icondir="$privdatadir/icons"
+AC_SUBST(icondir)
+
imagesdir="$privdatadir/images"
AC_SUBST(imagesdir)
-images16dir="$privdatadir/images/16x16"
-AC_SUBST(images16dir)
-
if test "$os_win32" = yes; then
dnl On Win32 there is no "rpath" mechanism. We install the private
dnl shared libraries in $libdir, meaning the DLLs will actually be in
@@ -1419,37 +1416,10 @@ if test "$os_win32" = yes; then
dnl also means gnome_win32_get_prefixes() will be able to deduce the
dnl installation folder correctly.
privsolibdir=$libdir
- dnl On Win32, use a relative path to the executables in .server
- dnl files. The path is relative to the folder where the .server file
- dnl is, i.e. $prefix/lib/bonobo/servers.
- bindir_in_server_file=../../../bin
- privlibexecdir_in_server_file=../../../libexec/evolution/$BASE_VERSION
- componentdir_in_server_file=../../../lib/evolution/$BASE_VERSION/components
else
privsolibdir=$privlibdir
- bindir_in_server_file="$bindir"
- privlibexecdir_in_server_file='${libexecdir}'/evolution/$BASE_VERSION
- componentdir_in_server_file="$componentdir"
fi
AC_SUBST(privsolibdir)
-AC_SUBST(bindir_in_server_file)
-AC_SUBST(privlibexecdir_in_server_file)
-AC_SUBST(componentdir_in_server_file)
-
-dnl images18dir="$privdatadir/images/18x18"
-dnl AC_SUBST(images18dir)
-
-dnl images20dir="$privdatadir/images/20x20"
-dnl AC_SUBST(images20dir)
-
-dnl images24dir="$privdatadir/images/24x24"
-dnl AC_SUBST(images24dir)
-
-dnl images32dir="$privdatadir/images/32x32"
-dnl AC_SUBST(images32dir)
-
-images48dir="$privdatadir/images/48x48"
-AC_SUBST(images48dir)
soundsdir="$privdatadir/sounds"
AC_SUBST(soundsdir)
diff --git a/doc/reference/shell/tmpl/e-icon-factory.sgml b/doc/reference/shell/tmpl/e-icon-factory.sgml
index 66d8008060..dc289c9a0b 100644
--- a/doc/reference/shell/tmpl/e-icon-factory.sgml
+++ b/doc/reference/shell/tmpl/e-icon-factory.sgml
@@ -17,20 +17,6 @@ Icon Functions (Legacy)
<!-- ##### SECTION Stability_Level ##### -->
-<!-- ##### FUNCTION e_icon_factory_init ##### -->
-<para>
-
-</para>
-
-
-
-<!-- ##### FUNCTION e_icon_factory_shutdown ##### -->
-<para>
-
-</para>
-
-
-
<!-- ##### FUNCTION e_icon_factory_get_icon_filename ##### -->
<para>
diff --git a/doc/reference/shell/tmpl/e-shell-content.sgml b/doc/reference/shell/tmpl/e-shell-content.sgml
index 2ffe528e98..fb17dd86bf 100644
--- a/doc/reference/shell/tmpl/e-shell-content.sgml
+++ b/doc/reference/shell/tmpl/e-shell-content.sgml
@@ -63,6 +63,11 @@ EShellContent
</para>
+<!-- ##### ARG EShellContent:search-radio-action ##### -->
+<para>
+
+</para>
+
<!-- ##### ARG EShellContent:search-rule ##### -->
<para>
diff --git a/doc/reference/shell/tmpl/eshell-unused.sgml b/doc/reference/shell/tmpl/eshell-unused.sgml
index dd0c06f1e0..0928b8d717 100644
--- a/doc/reference/shell/tmpl/eshell-unused.sgml
+++ b/doc/reference/shell/tmpl/eshell-unused.sgml
@@ -1858,6 +1858,18 @@ intelligent
@revision:
@Returns:
+<!-- ##### FUNCTION e_icon_factory_init ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION e_icon_factory_shutdown ##### -->
+<para>
+
+</para>
+
+
<!-- ##### FUNCTION e_shell_backend_get_filename ##### -->
<para>
diff --git a/e-util/e-icon-factory.c b/e-util/e-icon-factory.c
index cdbf39c788..411deead24 100644
--- a/e-util/e-icon-factory.c
+++ b/e-util/e-icon-factory.c
@@ -38,200 +38,16 @@
#include "e-icon-factory.h"
#include "e-util-private.h"
-#include "art/broken-image-16.xpm"
-#include "art/broken-image-24.xpm"
-
#define d(x)
-typedef struct {
- gchar *name;
- GdkPixbuf *pixbuf;
-} Icon;
-
-static GdkPixbuf *broken16_pixbuf = NULL;
-static GdkPixbuf *broken24_pixbuf = NULL;
-
-static GHashTable *name_to_icon = NULL;
-static GtkIconTheme *icon_theme = NULL;
-static GStaticMutex mutex = G_STATIC_MUTEX_INIT;
-
-/* Note: takes ownership of the pixbufs (eg. does not ref them) */
-static Icon *
-icon_new (const gchar *name, GdkPixbuf *pixbuf)
-{
- Icon *icon;
-
- icon = g_slice_new (Icon);
- icon->name = g_strdup (name);
- icon->pixbuf = pixbuf;
-
- return icon;
-}
-
-static void
-icon_free (Icon *icon)
-{
- g_free (icon->name);
- if (icon->pixbuf)
- g_object_unref (icon->pixbuf);
- g_slice_free (Icon, icon);
-}
-
-static Icon *
-load_icon (const gchar *icon_key, const gchar *icon_name, gint size, gint scale)
-{
- GdkPixbuf *pixbuf, *unscaled = NULL;
- gchar *basename, *filename = NULL;
-
- if (g_path_is_absolute (icon_name))
- filename = g_strdup (icon_name);
- else {
- GtkIconInfo *icon_info;
-
- icon_info = gtk_icon_theme_lookup_icon (
- icon_theme, icon_name, size, 0);
- if (icon_info != NULL) {
- filename = g_strdup (
- gtk_icon_info_get_filename (icon_info));
- gtk_icon_info_free (icon_info);
- }
- }
-
- if (!filename || !(unscaled = gdk_pixbuf_new_from_file (filename, NULL))) {
- if (scale) {
- const gchar *dent;
- gint width;
- GDir *dir;
- gchar *x;
-
- if (!(dir = g_dir_open (EVOLUTION_ICONSDIR, 0, NULL))) {
- goto done;
- }
-
- /* scan icon directories looking for an icon with a size >= the size we need. */
- while ((dent = g_dir_read_name (dir))) {
- if (!(dent[0] >= '1' && dent[0] <= '9'))
- continue;
-
- if (((width = strtol (dent, &x, 10)) < size) || *x != 'x')
- continue;
-
- if (((strtol (x + 1, &x, 10)) != width) || *x != '\0')
- continue;
-
- /* if the icon exists in this directory, we can [use/scale] it */
- g_free (filename);
- basename = g_strconcat (icon_name, ".png", NULL);
- filename = g_build_filename (EVOLUTION_ICONSDIR,
- dent,
- basename,
- NULL);
- g_free (basename);
- if ((unscaled = gdk_pixbuf_new_from_file (filename, NULL)))
- break;
- }
-
- g_dir_close (dir);
- } else {
- gchar *size_x_size;
-
- size_x_size = g_strdup_printf ("%dx%d", size, size);
- basename = g_strconcat (icon_name, ".png", NULL);
- g_free (filename);
- filename = g_build_filename (EVOLUTION_ICONSDIR,
- size_x_size,
- basename,
- NULL);
- g_free (basename);
- g_free (size_x_size);
- unscaled = gdk_pixbuf_new_from_file (filename, NULL);
- }
- }
-
- done:
-
- g_free (filename);
- if (unscaled != NULL) {
- if (gdk_pixbuf_get_width(unscaled) != size || gdk_pixbuf_get_height(unscaled) != size)
- {
- pixbuf = e_icon_factory_pixbuf_scale (unscaled, size, size);
- g_object_unref (unscaled);
- } else
- pixbuf = unscaled;
- } else {
- pixbuf = NULL;
- }
-
- return icon_new (icon_key, pixbuf);
-}
-
-static void
-icon_theme_changed_cb (GtkIconTheme *icon_theme, gpointer user_data)
-{
- g_hash_table_remove_all (name_to_icon);
-}
-
-/**
- * e_icon_factory_init:
- *
- * Initialises the icon factory.
- **/
-void
-e_icon_factory_init (void)
-{
- gchar *path;
-
- if (name_to_icon != NULL)
- return;
-
- name_to_icon = g_hash_table_new_full (
- g_str_hash, g_str_equal,
- (GDestroyNotify) NULL,
- (GDestroyNotify) icon_free);
-
- icon_theme = gtk_icon_theme_get_default ();
- path = g_build_filename (EVOLUTION_DATADIR,
- "evolution",
- BASE_VERSION,
- "icons",
- NULL);
- gtk_icon_theme_append_search_path (icon_theme, path);
- g_free (path);
- g_signal_connect (
- icon_theme, "changed",
- G_CALLBACK (icon_theme_changed_cb), NULL);
-
- broken16_pixbuf = gdk_pixbuf_new_from_xpm_data (
- (const gchar **) broken_image_16_xpm);
- broken24_pixbuf = gdk_pixbuf_new_from_xpm_data (
- (const gchar **) broken_image_24_xpm);
-}
-
-/**
- * e_icon_factory_shutdown:
- *
- * Shuts down the icon factory (cleans up all cached icons, etc).
- **/
-void
-e_icon_factory_shutdown (void)
-{
- if (name_to_icon == NULL)
- return;
-
- g_hash_table_destroy (name_to_icon);
- g_object_unref (broken16_pixbuf);
- g_object_unref (broken24_pixbuf);
- name_to_icon = NULL;
-}
-
/**
* e_icon_factory_get_icon_filename:
* @icon_name: name of the icon
- * @size: size of the icon
+ * @icon_size: size of the icon
*
- * Looks up the icon to use based on name and size.
+ * Returns the filename of the requested icon in the default icon theme.
*
- * Returns the requested icon pixbuf.
+ * Returns: the filename of the requested icon
**/
gchar *
e_icon_factory_get_icon_filename (const gchar *icon_name,
@@ -265,51 +81,35 @@ e_icon_factory_get_icon_filename (const gchar *icon_name,
* @icon_name: name of the icon
* @icon_size: size of the icon
*
- * Returns the specified icon of the requested size (may perform
- * scaling to achieve this). If @icon_name is a full path, that file
- * is used directly. Otherwise it is looked up in the user's current
- * icon theme. If the icon cannot be found in the icon theme, it falls
- * back to loading the requested icon from Evolution's icon set
- * installed from the art/ srcdir. If even that fails to find the
- * requested icon, then a "broken-image" icon is returned.
+ * Loads the requested icon from the default icon theme and renders it
+ * to a pixbuf.
+ *
+ * Returns: the rendered icon
**/
GdkPixbuf *
e_icon_factory_get_icon (const gchar *icon_name,
GtkIconSize icon_size)
{
+ GtkIconTheme *icon_theme;
GdkPixbuf *pixbuf;
- gchar *icon_key;
- Icon *icon;
- gint size, width, height;
+ gint width, height;
+ GError *error = NULL;
g_return_val_if_fail (icon_name != NULL, NULL);
+ icon_theme = gtk_icon_theme_get_default ();
+
if (!gtk_icon_size_lookup (icon_size, &width, &height))
return NULL;
- size = height;
-
- icon_key = g_alloca (strlen (icon_name) + 7);
- sprintf (icon_key, "%dx%d/%s", size, size, icon_name);
-
- g_static_mutex_lock (&mutex);
+ pixbuf = gtk_icon_theme_load_icon (
+ icon_theme, icon_name, height, 0, &error);
- if (!(icon = g_hash_table_lookup (name_to_icon, icon_key))) {
- icon = load_icon (icon_key, icon_name, size, TRUE);
- g_hash_table_insert (name_to_icon, icon->name, icon);
+ if (error != NULL) {
+ g_warning ("%s", error->message);
+ g_error_free (error);
}
- if ((pixbuf = icon->pixbuf)) {
- g_object_ref (pixbuf);
- } else {
- if (size >= 24)
- pixbuf = gdk_pixbuf_scale_simple (broken24_pixbuf, size, size, GDK_INTERP_NEAREST);
- else
- pixbuf = gdk_pixbuf_scale_simple (broken16_pixbuf, size, size, GDK_INTERP_NEAREST);
- }
-
- g_static_mutex_unlock (&mutex);
-
return pixbuf;
}
diff --git a/e-util/e-icon-factory.h b/e-util/e-icon-factory.h
index 52ac332363..9cec7253bf 100644
--- a/e-util/e-icon-factory.h
+++ b/e-util/e-icon-factory.h
@@ -26,8 +26,6 @@
#include <gtk/gtk.h>
-void e_icon_factory_init (void);
-void e_icon_factory_shutdown (void);
gchar * e_icon_factory_get_icon_filename(const gchar *icon_name,
GtkIconSize icon_size);
GdkPixbuf * e_icon_factory_get_icon (const gchar *icon_name,
diff --git a/shell/Makefile.am b/shell/Makefile.am
index 13ab041122..541f941e58 100644
--- a/shell/Makefile.am
+++ b/shell/Makefile.am
@@ -111,6 +111,7 @@ evolution_CPPFLAGS = \
-DEVOLUTION_DATADIR=\""$(datadir)"\" \
-DEVOLUTION_GALVIEWSDIR=\""$(viewsdir)"\" \
-DEVOLUTION_HELPDIR=\""$(evolutionhelpdir)"\" \
+ -DEVOLUTION_ICONDIR=\""$(icondir)"\" \
-DEVOLUTION_MODULEDIR=\""$(moduledir)"\" \
-DEVOLUTION_RULEDIR=\""$(privdatadir)"\" \
-DEVOLUTION_UIDIR=\""$(uidir)"\" \
diff --git a/shell/main.c b/shell/main.c
index 2ef93d1247..ab82c2eded 100644
--- a/shell/main.c
+++ b/shell/main.c
@@ -55,7 +55,6 @@
#include "e-util/e-bconf-map.h"
#include "e-util/e-dialog-utils.h"
#include "e-util/e-error.h"
-#include "e-util/e-icon-factory.h"
#include "e-util/e-plugin.h"
#include "e-util/e-plugin-ui.h"
#include "e-util/e-profile-event.h"
@@ -475,6 +474,7 @@ extern void link_shutdown (void);
gint
main (gint argc, gchar **argv)
{
+ GtkIconTheme *icon_theme;
GConfClient *client;
#ifdef DEVELOPMENT
gboolean skip_warning_dialog;
@@ -574,9 +574,11 @@ main (gint argc, gchar **argv)
g_warning ("Could not set up debugging output file.");
}
- e_icon_factory_init ();
e_passwords_init ();
+ icon_theme = gtk_icon_theme_get_default ();
+ gtk_icon_theme_append_search_path (icon_theme, EVOLUTION_ICONDIR);
+
gtk_window_set_default_icon_name ("evolution");
if (setup_only)
@@ -626,7 +628,6 @@ main (gint argc, gchar **argv)
gtk_accel_map_save (e_get_accels_filename ());
- e_icon_factory_shutdown ();
#ifdef G_OS_WIN32
link_shutdown ();
#endif