From 6b9550b491dfb805456b198d503ddea87d90e160 Mon Sep 17 00:00:00 2001 From: Michael Terry Date: Tue, 26 Jun 2007 23:29:58 +0000 Subject: [PATCH] use icon theme for app icons, bug #450777 svn path=/trunk/; revision=7784 --- capplets/common/ChangeLog | 5 ++ capplets/common/Makefile.am | 2 - capplets/common/capplet-util.c | 52 ++----------------- capplets/display/ChangeLog | 6 +++ capplets/display/Makefile.am | 21 +++++--- .../display/display-properties.desktop.in.in | 2 +- capplets/display/main.c | 2 +- capplets/file-types/ChangeLog | 6 +++ capplets/file-types/Makefile.am | 16 ++++++ capplets/file-types/file-types-capplet.c | 2 +- .../file-types-capplet.desktop.in.in | 2 +- capplets/file-types/mime-edit-dialog.c | 2 +- capplets/localization/ChangeLog | 6 +++ capplets/localization/Makefile.am | 18 +++++-- .../gnome-localization-properties.c | 2 +- .../localization/localization.desktop.in.in | 2 +- typing-break/ChangeLog | 5 ++ typing-break/Makefile.am | 6 ++- 18 files changed, 88 insertions(+), 69 deletions(-) diff --git a/capplets/common/ChangeLog b/capplets/common/ChangeLog index 4ee901b37..575639404 100644 --- a/capplets/common/ChangeLog +++ b/capplets/common/ChangeLog @@ -1,3 +1,8 @@ +2007-06-26 Michael Terry + + * capplet-util.c, Makefile.am: Drastically simplify capplet_set_icon() + to only look in the icon theme. Part of bug #450777. + 2007-06-25 Denis Washington * theme-thumbnail.[ch]: diff --git a/capplets/common/Makefile.am b/capplets/common/Makefile.am index 128212ed9..3142596fd 100644 --- a/capplets/common/Makefile.am +++ b/capplets/common/Makefile.am @@ -2,9 +2,7 @@ EXTRA_DIST = ChangeLog INCLUDES = \ -DGNOMECC_DATA_DIR="\"$(pkgdatadir)\"" \ - -DGNOMECC_ICONS_DIR="\"$(pkgdatadir)/icons\"" \ -DGNOMELOCALEDIR="\"$(datadir)/locale\"" \ - -DGNOME_ICONDIR=\""$(datadir)/pixmaps"\" \ -DG_LOG_DOMAIN=\"capplet-common\" \ -DINSTALL_PREFIX=\"$(prefix)\" \ -I$(top_srcdir) \ diff --git a/capplets/common/capplet-util.c b/capplets/common/capplet-util.c index 363b81d6b..afdc7956e 100644 --- a/capplets/common/capplet-util.c +++ b/capplets/common/capplet-util.c @@ -356,53 +356,7 @@ capplet_help (GtkWindow *parent, char const *helpfile, char const *section) void capplet_set_icon (GtkWidget *window, char const *icon_file_name) { - char *path; - char *tmp; - char *p; - GdkPixbuf *icon_pixbuf = NULL; - GtkIconTheme *icon_theme; - GtkIconInfo *icon_info; - - /* First look up from the icon theme */ - icon_theme = gtk_icon_theme_get_default (); - - tmp = g_strdup (icon_file_name); - p = strrchr (tmp, '.'); - if (p) - p[0] = '\0'; - - icon_info = gtk_icon_theme_lookup_icon (icon_theme, tmp, 48, 0); - - if (icon_info != NULL) { - icon_pixbuf = gtk_icon_info_load_icon (icon_info, NULL); - gtk_icon_info_free (icon_info); - } - - g_free (tmp); - - if (icon_pixbuf == NULL) { - /* Then we fallback to the control center icon location */ - path = g_build_filename (GNOMECC_ICONS_DIR, icon_file_name, NULL); - - icon_pixbuf = gdk_pixbuf_new_from_file (path, NULL); - g_free (path); - } - - if (icon_pixbuf == NULL) { - /* Then we fallback to the gnome program discovery stuff */ - path = gnome_pixmap_file (icon_file_name); - if (path != NULL) { - icon_pixbuf = gdk_pixbuf_new_from_file (path, NULL); - g_free (path); - } - } - - if (icon_pixbuf != NULL) { - /* Make sure that every window gets an icon */ - gtk_window_set_default_icon (icon_pixbuf); - - gtk_window_set_icon (GTK_WINDOW (window), icon_pixbuf); - - g_object_unref (icon_pixbuf); - } + /* Make sure that every window gets an icon */ + gtk_window_set_default_icon_name (icon_file_name); + gtk_window_set_icon_name (GTK_WINDOW (window), icon_file_name); } diff --git a/capplets/display/ChangeLog b/capplets/display/ChangeLog index 7d1af121b..355f110ec 100644 --- a/capplets/display/ChangeLog +++ b/capplets/display/ChangeLog @@ -1,3 +1,9 @@ +2007-06-26 Michael Terry + + * Makefile.am, main.c, display-properties.desktop.in.in: Use + icon theme instead of global pixmaps dir for app icon. Closes + bug #450777. + 2007-06-16 Jens Granseuer * main.c: (run_revert_dialog), (cb_dialog_response): don't make the diff --git a/capplets/display/Makefile.am b/capplets/display/Makefile.am index 818a30c43..0546445e7 100644 --- a/capplets/display/Makefile.am +++ b/capplets/display/Makefile.am @@ -10,11 +10,8 @@ gnome_display_properties_LDFLAGS = -export-dynamic @INTLTOOL_DESKTOP_RULE@ -iconsdir = $(pkgdatadir)/icons -icons_DATA = display-capplet.png - -desktop_iconsdir = $(datadir)/pixmaps -desktop_icons_DATA = display-capplet.png +icondir = $(datadir)/icons/hicolor/48x48/apps +dist_icon_DATA = display-capplet.png desktopdir = $(datadir)/applications Desktop_in_files = display-properties.desktop.in @@ -27,4 +24,16 @@ INCLUDES = $(DISPLAY_CAPPLET_CFLAGS) \ -DGNOMECC_DATA_DIR="\"$(pkgdatadir)\"" CLEANFILES = $(GNOMECC_CAPPLETS_CLEANFILES) $(Desktop_in_files) $(desktop_DATA) -EXTRA_DIST = $(icons_DATA) + +gtk_update_icon_cache = gtk-update-icon-cache -f -t $(datadir)/icons/hicolor +install-data-hook: update-icon-cache +uninstall-hook: update-icon-cache +update-icon-cache: + @-if test -z "$(DESTDIR)"; then \ + echo "Updating Gtk icon cache."; \ + $(gtk_update_icon_cache); \ + else \ + echo "*** Icon cache not updated. After (un)install, run this:"; \ + echo "*** $(gtk_update_icon_cache)"; \ + fi + diff --git a/capplets/display/display-properties.desktop.in.in b/capplets/display/display-properties.desktop.in.in index 8be05e873..52ba833aa 100644 --- a/capplets/display/display-properties.desktop.in.in +++ b/capplets/display/display-properties.desktop.in.in @@ -3,7 +3,7 @@ Encoding=UTF-8 _Name=Screen Resolution _Comment=Change screen resolution Exec=gnome-display-properties -Icon=display-capplet.png +Icon=display-capplet Terminal=false Type=Application StartupNotify=true diff --git a/capplets/display/main.c b/capplets/display/main.c index 238e0241e..8de357557 100644 --- a/capplets/display/main.c +++ b/capplets/display/main.c @@ -632,7 +632,7 @@ create_dialog (struct DisplayInfo *info) gtk_window_set_resizable(GTK_WINDOW (dialog), FALSE); gtk_container_set_border_width (GTK_CONTAINER (dialog), 5); gtk_box_set_spacing (GTK_BOX (GTK_DIALOG (dialog)->vbox), 2); - capplet_set_icon (dialog, "display-capplet.png"); + capplet_set_icon (dialog, "display-capplet"); vbox = gtk_vbox_new (FALSE, 18); gtk_container_set_border_width (GTK_CONTAINER (vbox), 5); diff --git a/capplets/file-types/ChangeLog b/capplets/file-types/ChangeLog index bfa10381d..a9ba72b5b 100644 --- a/capplets/file-types/ChangeLog +++ b/capplets/file-types/ChangeLog @@ -1,3 +1,9 @@ +2007-06-26 Michael Terry + + * file-types-capplet.c, mime-edit-dialog.c, + file-types-capplet.desktop.in.in, Makefile.am: Use icon theme + instead of global pixmaps dir for app icon. Closes bug #450777. + 2005-07-07 Sebastien Bacher * file-types.desktop.in.in: diff --git a/capplets/file-types/Makefile.am b/capplets/file-types/Makefile.am index 1b9739d4b..d543690f3 100644 --- a/capplets/file-types/Makefile.am +++ b/capplets/file-types/Makefile.am @@ -16,6 +16,9 @@ gnome_file_types_properties_SOURCES = \ @INTLTOOL_DESKTOP_RULE@ +icondir = $(datadir)/icons/hicolor/48x48/apps +dist_icon_DATA = file-types-capplet.png + Gladedir = $(pkgdatadir)/glade Glade_DATA = file-types-properties.glade @@ -26,3 +29,16 @@ desktop_DATA = $(Desktop_in_files:.desktop.in=.desktop) INCLUDES = $(GNOMECC_CAPPLETS_CFLAGS) $(VFS_CAPPLET_CFLAGS) CLEANFILES = $(GNOMECC_CAPPLETS_CLEANFILES) EXTRA_DIST = $(Glade_DATA) $(Desktop_in_files) $(Desktop_in_files) + +gtk_update_icon_cache = gtk-update-icon-cache -f -t $(datadir)/icons/hicolor +install-data-hook: update-icon-cache +uninstall-hook: update-icon-cache +update-icon-cache: + @-if test -z "$(DESTDIR)"; then \ + echo "Updating Gtk icon cache."; \ + $(gtk_update_icon_cache); \ + else \ + echo "*** Icon cache not updated. After (un)install, run this:"; \ + echo "*** $(gtk_update_icon_cache)"; \ + fi + diff --git a/capplets/file-types/file-types-capplet.c b/capplets/file-types/file-types-capplet.c index ad8affefd..4b6d24f3a 100644 --- a/capplets/file-types/file-types-capplet.c +++ b/capplets/file-types/file-types-capplet.c @@ -301,7 +301,7 @@ main (int argc, char **argv) GtkWidget *mime_dialog = WID ("main_dialog"); gtk_dialog_set_default_response (GTK_DIALOG (mime_dialog), GTK_RESPONSE_CLOSE); - capplet_set_icon (mime_dialog, "gnome-ccmime.png"); + capplet_set_icon (mime_dialog, "file-types-capplet"); gtk_widget_show_all (mime_dialog); } else { MimeTypeInfo *info = NULL; diff --git a/capplets/file-types/file-types-capplet.desktop.in.in b/capplets/file-types/file-types-capplet.desktop.in.in index 1c0b975d9..ac5026e7f 100644 --- a/capplets/file-types/file-types-capplet.desktop.in.in +++ b/capplets/file-types/file-types-capplet.desktop.in.in @@ -1,7 +1,7 @@ [Desktop Entry] _Name=File Types and Programs _Comment=Specify which programs are used to open or view each file type -Icon=gnome-ccmime.png +Icon=file-types-capplet Exec=file-types-capplet Terminal=0 Type=Application diff --git a/capplets/file-types/mime-edit-dialog.c b/capplets/file-types/mime-edit-dialog.c index 3a676e19c..f49ef56df 100644 --- a/capplets/file-types/mime-edit-dialog.c +++ b/capplets/file-types/mime-edit-dialog.c @@ -209,7 +209,7 @@ mime_edit_dialog_init (MimeEditDialog *dialog, MimeEditDialogClass *class) GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OK, GTK_RESPONSE_OK, NULL); - capplet_set_icon (dialog->p->dialog_win, "gnome-ccmime.png"); + capplet_set_icon (dialog->p->dialog_win, "file-types-capplet"); gtk_dialog_set_default_response (GTK_DIALOG (dialog->p->dialog_win), GTK_RESPONSE_OK); diff --git a/capplets/localization/ChangeLog b/capplets/localization/ChangeLog index fafb684a8..38e73127f 100644 --- a/capplets/localization/ChangeLog +++ b/capplets/localization/ChangeLog @@ -1,3 +1,9 @@ +2007-06-26 Michael Terry + + * localization.desktop.in.in, Makefile.am, + gnome-localization-properties.c: Use icon theme instead of global + pixmaps dir for app icon. Closes bug #450777. + 2006-12-08 Kjartan Maraas * gnome-localization-properties.c: (languages_changed_cb), diff --git a/capplets/localization/Makefile.am b/capplets/localization/Makefile.am index f9b90b49e..b9736cc81 100644 --- a/capplets/localization/Makefile.am +++ b/capplets/localization/Makefile.am @@ -12,9 +12,8 @@ gnome_localization_properties_LDADD = \ gladedir = $(pkgdatadir)/glade glade_DATA = gnome-localization-properties.glade -pixmapsdir = $(pkgdatadir)/pixmaps -pixmaps_DATA = \ - localization-capplet.png +icondir = $(datadir)/icons/hicolor/48x48/apps +dist_icon_DATA = localization-capplet.png desktopdir = $(datadir)/applications desktop_in_files = localization.desktop.in @@ -23,3 +22,16 @@ desktop_DATA = $(desktop_in_files:.desktop.in=.desktop) INCLUDES = $(GNOMECC_CAPPLETS_CFLAGS) CLEANFILES = $(GNOMECC_CAPPLETS_CLEANFILES) EXTRA_DIST = $(glade_DATA) $(pixmaps_DATA) $(desktop_in_files) + +gtk_update_icon_cache = gtk-update-icon-cache -f -t $(datadir)/icons/hicolor +install-data-hook: update-icon-cache +uninstall-hook: update-icon-cache +update-icon-cache: + @-if test -z "$(DESTDIR)"; then \ + echo "Updating Gtk icon cache."; \ + $(gtk_update_icon_cache); \ + else \ + echo "*** Icon cache not updated. After (un)install, run this:"; \ + echo "*** $(gtk_update_icon_cache)"; \ + fi + diff --git a/capplets/localization/gnome-localization-properties.c b/capplets/localization/gnome-localization-properties.c index 89fc20915..c7e9fddbd 100644 --- a/capplets/localization/gnome-localization-properties.c +++ b/capplets/localization/gnome-localization-properties.c @@ -1101,7 +1101,7 @@ main (int argc, char **argv) changeset = NULL; dialog = create_dialog (); setup_dialog (dialog, changeset); - capplet_set_icon (WID ("localization_dialog"), "localization-capplet.png"); + capplet_set_icon (WID ("localization_dialog"), "localization-capplet"); gtk_widget_show (WID ("localization_dialog")); gtk_main (); diff --git a/capplets/localization/localization.desktop.in.in b/capplets/localization/localization.desktop.in.in index 46b1047dd..43303bced 100644 --- a/capplets/localization/localization.desktop.in.in +++ b/capplets/localization/localization.desktop.in.in @@ -3,7 +3,7 @@ Encoding=UTF-8 _Name=Language and Culture _Comment=Set your language and culture preferences Exec=gnome-localization-properties -Icon=localization-capplet.png +Icon=localization-capplet Terminal=false Type=Application StartupNotify=true diff --git a/typing-break/ChangeLog b/typing-break/ChangeLog index 673084a07..85ce222d9 100644 --- a/typing-break/ChangeLog +++ b/typing-break/ChangeLog @@ -1,3 +1,8 @@ +2007-06-26 Michael Terry + + * Makefile.am: Update icon cache on uninstall as well as install. + Part of bug #450777. + 2007-06-08 Christian Persch * main.c: (main): NULL-terminate the options array. diff --git a/typing-break/Makefile.am b/typing-break/Makefile.am index a01cd68b4..99bbff80c 100644 --- a/typing-break/Makefile.am +++ b/typing-break/Makefile.am @@ -32,11 +32,13 @@ dist_icon_DATA = typing-monitor.png svgicondir = $(datadir)/icons/hicolor/scalable/apps dist_svgicon_DATA = typing-monitor.svg gtk_update_icon_cache = gtk-update-icon-cache -f -t $(datadir)/icons/hicolor -install-data-hook: +install-data-hook: update-icon-cache +uninstall-hook: update-icon-cache +update-icon-cache: @-if test -z "$(DESTDIR)"; then \ echo "Updating Gtk icon cache."; \ $(gtk_update_icon_cache); \ else \ - echo "*** Icon cache not updated. After install, run this:"; \ + echo "*** Icon cache not updated. After (un)install, run this:"; \ echo "*** $(gtk_update_icon_cache)"; \ fi