summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAntónio Fernandes <antoniof@gnome.org>2022-09-01 12:15:36 +0100
committerAntónio Fernandes <antoniof@gnome.org>2022-09-01 12:23:06 +0100
commit278435e3c20244b48986c6cd8b72c5317668c72d (patch)
tree9dc3b78f16d7e7a27d0b2a741f8ae9395cdf1b12
parentbf2b63569dffb5738514e471281e926ab1684790 (diff)
downloadnautilus-278435e3c20244b48986c6cd8b72c5317668c72d.tar.gz
thumbnails: Create larger thumbnails for higher density displays
-rw-r--r--src/nautilus-thumbnails.c27
1 files changed, 26 insertions, 1 deletions
diff --git a/src/nautilus-thumbnails.c b/src/nautilus-thumbnails.c
index 1bad311e1..790b4e36f 100644
--- a/src/nautilus-thumbnails.c
+++ b/src/nautilus-thumbnails.c
@@ -137,7 +137,32 @@ get_thumbnail_factory (void)
if (thumbnail_factory == NULL)
{
- thumbnail_factory = gnome_desktop_thumbnail_factory_new (GNOME_DESKTOP_THUMBNAIL_SIZE_LARGE);
+ GdkDisplay *display = gdk_display_get_default ();
+ GListModel *monitors = gdk_display_get_monitors (display);
+ gint max_scale = 1;
+ GnomeDesktopThumbnailSize size;
+
+ for (guint i = 0; i < g_list_model_get_n_items (monitors); i++)
+ {
+ g_autoptr (GdkMonitor) monitor = g_list_model_get_item (monitors, i);
+
+ max_scale = MAX (max_scale, gdk_monitor_get_scale_factor (monitor));
+ }
+
+ if (max_scale <= 1)
+ {
+ size = GNOME_DESKTOP_THUMBNAIL_SIZE_LARGE;
+ }
+ else if (max_scale <= 2)
+ {
+ size = GNOME_DESKTOP_THUMBNAIL_SIZE_XLARGE;
+ }
+ else
+ {
+ size = GNOME_DESKTOP_THUMBNAIL_SIZE_XXLARGE;
+ }
+
+ thumbnail_factory = gnome_desktop_thumbnail_factory_new (size);
}
return thumbnail_factory;