summaryrefslogtreecommitdiff
path: root/src/nautilus-file.c
diff options
context:
space:
mode:
authorAntónio Fernandes <antoniof@gnome.org>2022-08-07 22:52:26 +0100
committerAntónio Fernandes <antoniof@gnome.org>2022-09-01 12:23:06 +0100
commit314fc335dce1ee733d3607c908f9091fcd8d19eb (patch)
tree48d7a9b02878ce916f8e581377f1438aa0fd2204 /src/nautilus-file.c
parent287299e56b764975a39d9db436956ef1ab189d05 (diff)
downloadnautilus-314fc335dce1ee733d3607c908f9091fcd8d19eb.tar.gz
xicon-info: Take a paintables instead of pixbufs
This is more generic and is going to allow HiDPI icons and GPU usage. GdkPixbuf can be easily converted into GdkTexture, which is a GdkPaintable.
Diffstat (limited to 'src/nautilus-file.c')
-rw-r--r--src/nautilus-file.c22
1 files changed, 4 insertions, 18 deletions
diff --git a/src/nautilus-file.c b/src/nautilus-file.c
index 96ececa4c..a2c02f690 100644
--- a/src/nautilus-file.c
+++ b/src/nautilus-file.c
@@ -5150,11 +5150,9 @@ nautilus_file_get_thumbnail_icon (NautilusFile *file,
GdkPixbuf *pixbuf;
int w, h, s;
double thumb_scale;
- GIcon *gicon;
NautilusIconInfo *icon;
icon = NULL;
- gicon = NULL;
pixbuf = NULL;
modified_size = size * scale;
@@ -5221,25 +5219,13 @@ nautilus_file_get_thumbnail_icon (NautilusFile *file,
if (pixbuf != NULL)
{
- gicon = G_ICON (g_object_ref (pixbuf));
+ g_autoptr (GdkTexture) texture = gdk_texture_new_for_pixbuf (pixbuf);
+ icon = nautilus_icon_info_new_for_paintable (GDK_PAINTABLE (texture), scale);
}
else if (file->details->is_thumbnailing)
{
- gicon = g_themed_icon_new (ICON_NAME_THUMBNAIL_LOADING);
- }
-
- if (gicon != NULL)
- {
- if (g_icon_equal (gicon, G_ICON (pixbuf)))
- {
- icon = nautilus_icon_info_new_for_pixbuf (pixbuf, scale);
- }
- else
- {
- icon = nautilus_icon_info_lookup (gicon, size, scale);
- }
-
- g_object_unref (gicon);
+ g_autoptr (GIcon) gicon = g_themed_icon_new (ICON_NAME_THUMBNAIL_LOADING);
+ icon = nautilus_icon_info_lookup (gicon, size, scale);
}
return icon;