gtk: added cptn's modified stock icon patch

This commit is contained in:
Matt Housh 2006-08-09 13:38:57 +00:00
parent e0143e5535
commit 4f2f2e4e2d
3 changed files with 70 additions and 3 deletions

View File

@ -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

View File

@ -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

View File

@ -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;
}