summaryrefslogtreecommitdiff
path: root/libnautilus-extensions
diff options
context:
space:
mode:
authorDarin Adler <darin@src.gnome.org>2000-09-20 17:15:15 +0000
committerDarin Adler <darin@src.gnome.org>2000-09-20 17:15:15 +0000
commit34347bcea4310e626629df2feada8ae04209e0a6 (patch)
tree71286cdb72274d66632ba04e4a84f11761cea153 /libnautilus-extensions
parentaeaf819c86c5bf49cb003beac9a52efcdb173fb1 (diff)
downloadnautilus-34347bcea4310e626629df2feada8ae04209e0a6.tar.gz
Fixed bug that was preventing Show Properties from working.
* libnautilus-extensions/nautilus-icon-factory.c: (cache_icon_new): Allow NULL for details to mean default details; keeps the fallback icon code simpler. (set_theme): A little more simplification. (load_icon_for_scaling): Fix the fallback icon to create the cache icon with cache_icon_new instead of rolling its own.
Diffstat (limited to 'libnautilus-extensions')
-rw-r--r--libnautilus-extensions/nautilus-icon-factory.c16
1 files changed, 9 insertions, 7 deletions
diff --git a/libnautilus-extensions/nautilus-icon-factory.c b/libnautilus-extensions/nautilus-icon-factory.c
index 6f1e4ca1d..e5fdde462 100644
--- a/libnautilus-extensions/nautilus-icon-factory.c
+++ b/libnautilus-extensions/nautilus-icon-factory.c
@@ -407,7 +407,9 @@ cache_icon_new (GdkPixbuf *pixbuf,
icon->internal_ref_count = 1;
icon->custom = custom;
icon->scaled = scaled;
- icon->details = *details;
+ if (details != NULL) {
+ icon->details = *details;
+ }
/* Put it into the hash table. */
g_hash_table_insert (factory->cache_icons, pixbuf, icon);
@@ -645,13 +647,12 @@ set_theme (const char *theme_name)
factory = get_icon_factory ();
- nautilus_icon_factory_clear ();
-
- if ((factory->theme_name == NULL && theme_name == NULL) ||
- nautilus_strcmp (theme_name, factory->theme_name) == 0) {
+ if (nautilus_strcmp (theme_name, factory->theme_name) == 0) {
return;
}
+ nautilus_icon_factory_clear ();
+
g_free (factory->theme_name);
factory->theme_name = g_strdup (theme_name);
@@ -1534,6 +1535,7 @@ load_icon_for_scaling (NautilusScalableIcon *scalable_icon,
CacheIcon *icon;
guint actual_size;
IconSizeRequest size_request;
+ GdkPixbuf *pixbuf;
size_request.maximum_width = MAXIMUM_ICON_SIZE * requested_size / NAUTILUS_ZOOM_LEVEL_STANDARD;
size_request.maximum_height = size_request.maximum_width;
@@ -1568,8 +1570,7 @@ load_icon_for_scaling (NautilusScalableIcon *scalable_icon,
/* Finally, fall back on the hard-coded image. */
if (fallback_icon == NULL) {
- fallback_icon = g_new0 (CacheIcon, 1);
- fallback_icon->pixbuf = gdk_pixbuf_new_from_data
+ pixbuf = gdk_pixbuf_new_from_data
(nautilus_default_file_icon,
GDK_COLORSPACE_RGB,
TRUE,
@@ -1579,6 +1580,7 @@ load_icon_for_scaling (NautilusScalableIcon *scalable_icon,
nautilus_default_file_icon_width * 4, /* stride */
NULL, /* don't destroy data */
NULL);
+ fallback_icon = cache_icon_new (pixbuf, FALSE, FALSE, NULL);
g_atexit (destroy_fallback_icon);
}
cache_icon_ref (fallback_icon);