summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexandru Pandelea <alexandru.pandelea@gmail.com>2016-03-03 07:30:43 +0200
committerCarlos Soriano <csoriano@gnome.org>2016-03-07 17:17:55 +0100
commit52dd77c43cb56f6d3572919d3a049ec4327bbbf6 (patch)
tree08a401d33acca9afeb08644fd2a95b016ae3a0de
parent0d0d95d2cbab6973c1df45787f8dfa66b79f3f21 (diff)
downloadnautilus-52dd77c43cb56f6d3572919d3a049ec4327bbbf6.tar.gz
nautilus-file: Don't show thumbnails for small zoom levels
When the zoom level is too small, thumbnails become useless, as they are so small that they don't give any information. The solution to this problem is to use mimetype icons when the zoom level is too small In order to achieve this, there was added a function that returns true if the zoom is too small, nautilus_thumbnail_is_limited_by_zoom, meaning that the corresponding mimetype icon should be used instead of the thumbnail https://bugzilla.gnome.org/show_bug.cgi?id=752805
-rw-r--r--libnautilus-private/nautilus-file.c17
1 files changed, 16 insertions, 1 deletions
diff --git a/libnautilus-private/nautilus-file.c b/libnautilus-private/nautilus-file.c
index 22e29ddd8..1efe626e8 100644
--- a/libnautilus-private/nautilus-file.c
+++ b/libnautilus-private/nautilus-file.c
@@ -4581,6 +4581,20 @@ nautilus_file_get_thumbnail_icon (NautilusFile *file,
return icon;
}
+static gboolean
+nautilus_thumbnail_is_limited_by_zoom (int size,
+ int scale)
+{
+ int zoom_level;
+
+ zoom_level = size * scale;
+
+ if (zoom_level <= NAUTILUS_LIST_ICON_SIZE_SMALL)
+ return TRUE;
+
+ return FALSE;
+}
+
NautilusIconInfo *
nautilus_file_get_icon (NautilusFile *file,
int size,
@@ -4608,7 +4622,8 @@ nautilus_file_get_icon (NautilusFile *file,
flags & NAUTILUS_FILE_ICON_FLAGS_FORCE_THUMBNAIL_SIZE);
if (flags & NAUTILUS_FILE_ICON_FLAGS_USE_THUMBNAILS &&
- nautilus_file_should_show_thumbnail (file)) {
+ nautilus_file_should_show_thumbnail (file) &&
+ !nautilus_thumbnail_is_limited_by_zoom (size, scale)) {
icon = nautilus_file_get_thumbnail_icon (file, size, scale, flags);
}