From 4f2f2e4e2d87319d9e33a7ff9f8e52f9cd4665cb Mon Sep 17 00:00:00 2001 From: Matt Housh Date: Wed, 9 Aug 2006 13:38:57 +0000 Subject: [PATCH] gtk: added cptn's modified stock icon patch --- gtk/.md5sum | 1 + gtk/Pkgfile | 7 ++-- gtk/gtk+-2.10.1-stock-icon.diff | 65 +++++++++++++++++++++++++++++++++ 3 files changed, 70 insertions(+), 3 deletions(-) create mode 100644 gtk/gtk+-2.10.1-stock-icon.diff diff --git a/gtk/.md5sum b/gtk/.md5sum index 11fb4dae6..783ef648e 100644 --- a/gtk/.md5sum +++ b/gtk/.md5sum @@ -1,3 +1,4 @@ 501ae79b5b7a93a8338e999274f4dcbb gdk-pixbuf.loaders +17510dcd6cb2672d9e530beb9bee86a4 gtk+-2.10.1-stock-icon.diff 7f1d39031d50de8228211aa3230d4acd gtk+-2.10.1.tar.bz2 a6ab21dcf3d52be4b2c002d6a74dddf9 gtk.immodules diff --git a/gtk/Pkgfile b/gtk/Pkgfile index 97406ce86..d68080266 100644 --- a/gtk/Pkgfile +++ b/gtk/Pkgfile @@ -5,12 +5,13 @@ name=gtk version=2.10.1 -release=1 +release=2 source=(ftp://ftp.gtk.org/pub/gtk/v2.10/${name}+-$version.tar.bz2 \ - gdk-pixbuf.loaders gtk.immodules) + gdk-pixbuf.loaders gtk.immodules $name+-$version-stock-icon.diff) build () { -cd gtk+-$version + cd gtk+-$version + patch -p1 -i $SRC/$name+-$version-stock-icon.diff ./configure --prefix=/usr make make DESTDIR=$PKG install diff --git a/gtk/gtk+-2.10.1-stock-icon.diff b/gtk/gtk+-2.10.1-stock-icon.diff new file mode 100644 index 000000000..b809c24b7 --- /dev/null +++ b/gtk/gtk+-2.10.1-stock-icon.diff @@ -0,0 +1,65 @@ +--- gtk+-2.10.1/gtk/gtkfilesystem.c.orig 2006-08-07 22:23:22.436475760 +0200 ++++ gtk+-2.10.1/gtk/gtkfilesystem.c 2006-08-07 22:25:38.673764544 +0200 +@@ -301,15 +301,21 @@ + GtkIconTheme *icon_theme; + + icon_theme = gtk_icon_theme_get_for_screen (gtk_widget_get_screen (widget)); +- pixbuf = gtk_icon_theme_load_icon (icon_theme, info->icon_name, +- pixel_size, 0, NULL); ++ if (gtk_icon_theme_has_icon (icon_theme, info->icon_name)) ++ pixbuf = gtk_icon_theme_load_icon (icon_theme, info->icon_name, ++ pixel_size, 0, NULL); + } + } + + if (!pixbuf) + { + /* load a fallback icon */ +- pixbuf = gtk_widget_render_icon (widget, GTK_STOCK_FILE, GTK_ICON_SIZE_SMALL_TOOLBAR, NULL); ++ pixbuf = gtk_widget_render_icon (widget, ++ gtk_file_info_get_is_folder (info) ++ ? GTK_STOCK_DIRECTORY : GTK_STOCK_FILE, ++ GTK_ICON_SIZE_SMALL_TOOLBAR, ++ NULL); ++ + if (!pixbuf && error) + g_set_error (error, + GTK_FILE_SYSTEM_ERROR, +@@ -648,7 +654,7 @@ + GError **error) + { + gchar *icon_name; +- GdkPixbuf *pixbuf; ++ GdkPixbuf *pixbuf = NULL; + + g_return_val_if_fail (GTK_IS_FILE_SYSTEM (file_system), NULL); + g_return_val_if_fail (volume != NULL, NULL); +@@ -658,15 +664,22 @@ + + icon_name = gtk_file_system_volume_get_icon_name (file_system, volume, + error); +- if (!icon_name) ++ if (icon_name) + { +- return NULL; ++ GtkIconTheme *icon_theme; ++ ++ icon_theme = gtk_icon_theme_get_for_screen (gtk_widget_get_screen (widget)); ++ if (gtk_icon_theme_has_icon (icon_theme, icon_name)) ++ pixbuf = gtk_icon_theme_load_icon (icon_theme, ++ icon_name, pixel_size, 0, NULL); ++ g_free (icon_name); + } + +- pixbuf = gtk_icon_theme_load_icon (gtk_icon_theme_get_for_screen (gtk_widget_get_screen (widget)), +- icon_name, pixel_size, 0, NULL); +- g_free (icon_name); +- ++ if (!pixbuf) ++ pixbuf = gtk_widget_render_icon (widget, ++ GTK_STOCK_HARDDISK, ++ GTK_ICON_SIZE_SMALL_TOOLBAR, ++ NULL); + return pixbuf; + } +