diff options
author | António Fernandes <antoniof@gnome.org> | 2022-08-07 22:52:26 +0100 |
---|---|---|
committer | António Fernandes <antoniof@gnome.org> | 2022-09-01 12:23:06 +0100 |
commit | 314fc335dce1ee733d3607c908f9091fcd8d19eb (patch) | |
tree | 48d7a9b02878ce916f8e581377f1438aa0fd2204 /src/nautilus-file.c | |
parent | 287299e56b764975a39d9db436956ef1ab189d05 (diff) | |
download | nautilus-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.c | 22 |
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; |