summaryrefslogtreecommitdiff
path: root/libnautilus-private/nautilus-icon-info.c
diff options
context:
space:
mode:
authorAlexander Larsson <alexl@redhat.com>2008-02-20 09:23:15 +0000
committerAlexander Larsson <alexl@src.gnome.org>2008-02-20 09:23:15 +0000
commit922ba8638a15e482de5dc766de6ad711a1ed43f9 (patch)
tree436c1fc1299de6645eb1d6a919591a4b7b38c1e6 /libnautilus-private/nautilus-icon-info.c
parent040e8ee6a37d651c5cb8c7478b250775233a9759 (diff)
downloadnautilus-922ba8638a15e482de5dc766de6ad711a1ed43f9.tar.gz
Don't scale icons if not needed (#515903) Patch from Christian Neumair
2008-02-20 Alexander Larsson <alexl@redhat.com> * libnautilus-private/nautilus-icon-info.c: (nautilus_icon_info_get_pixbuf_nodefault_at_size): (nautilus_icon_info_get_pixbuf_at_size): Don't scale icons if not needed (#515903) Patch from Christian Neumair svn path=/trunk/; revision=13779
Diffstat (limited to 'libnautilus-private/nautilus-icon-info.c')
-rw-r--r--libnautilus-private/nautilus-icon-info.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/libnautilus-private/nautilus-icon-info.c b/libnautilus-private/nautilus-icon-info.c
index eb8e9e674..872a1c3e3 100644
--- a/libnautilus-private/nautilus-icon-info.c
+++ b/libnautilus-private/nautilus-icon-info.c
@@ -487,6 +487,10 @@ nautilus_icon_info_get_pixbuf_nodefault_at_size (NautilusIconInfo *icon,
w = gdk_pixbuf_get_width (pixbuf);
h = gdk_pixbuf_get_height (pixbuf);
s = MAX (w, h);
+ if (s == forced_size) {
+ return pixbuf;
+ }
+
scale = (double)forced_size / s;
scaled_pixbuf = gdk_pixbuf_scale_simple (pixbuf,
w * scale, h * scale,
@@ -509,6 +513,10 @@ nautilus_icon_info_get_pixbuf_at_size (NautilusIconInfo *icon,
w = gdk_pixbuf_get_width (pixbuf);
h = gdk_pixbuf_get_height (pixbuf);
s = MAX (w, h);
+ if (s == forced_size) {
+ return pixbuf;
+ }
+
scale = (double)forced_size / s;
scaled_pixbuf = gdk_pixbuf_scale_simple (pixbuf,
w * scale, h * scale,