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 21:13:02 +0100
commit7059cc66ca3bc338e49a6ac4cb37c3484ba3b19d (patch)
tree19702851f231c436e23fd171ab2bec1866e4ebe3
parent0dfb6dec99c166cd35d9d87da82653f93365b227 (diff)
downloadnautilus-7059cc66ca3bc338e49a6ac4cb37c3484ba3b19d.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);
}