From 4d4f61a2517fad14277ef0363e21f1989902df66 Mon Sep 17 00:00:00 2001
From: Alexander Schwinn <alexxcons@xfce.org>
Date: Thu, 22 Dec 2022 10:13:45 +0000
Subject: [PATCH] Fix several thumbnailing issues

---
 thunar/thunar-standard-view.c | 12 ++++++------
 thunar/thunar-thumbnailer.c   |  3 +--
 2 files changed, 7 insertions(+), 8 deletions(-)

diff --git a/thunar/thunar-standard-view.c b/thunar/thunar-standard-view.c
index b921e1db5..b4104c4e9 100644
--- a/thunar/thunar-standard-view.c
+++ b/thunar/thunar-standard-view.c
@@ -3922,6 +3922,10 @@ thunar_standard_view_request_thumbnails_real (ThunarStandardView *standard_view,
   if (thunar_view_get_loading (THUNAR_VIEW (standard_view)))
     return TRUE;
 
+  /* do nothing if we are already loading thumbnails */
+  if (standard_view->priv->thumbnail_request != 0)
+    return FALSE;
+
   /* compute visible item range */
   if ((*THUNAR_STANDARD_VIEW_GET_CLASS (standard_view)->get_visible_range) (standard_view,
                                                                             &start_path,
@@ -4047,12 +4051,8 @@ thunar_standard_view_size_allocate (ThunarStandardView *standard_view,
   if (thunar_view_get_loading (THUNAR_VIEW (standard_view)))
     return;
 
-  /* to avoid a flow of updates, don't update if there is already a request pending */
-  if (standard_view->priv->thumbnail_source_id == 0)
-    {
-      /* reschedule a thumbnail request timeout */
-      thunar_standard_view_schedule_thumbnail_timeout (standard_view);
-    }
+  /* Try to load thumbnails for files which are now visible */
+  thunar_standard_view_request_thumbnails_real (standard_view, TRUE);
 }
 
 
diff --git a/thunar/thunar-thumbnailer.c b/thunar/thunar-thumbnailer.c
index 966e831a0..92c5025d8 100644
--- a/thunar/thunar-thumbnailer.c
+++ b/thunar/thunar-thumbnailer.c
@@ -1154,8 +1154,7 @@ thunar_thumbnailer_queue_files (ThunarThumbnailer   *thumbnailer,
   if (success)
     {
       thumbnailer->jobs = g_slist_prepend (thumbnailer->jobs, job);
-      if (*request != 0)
-        *request = job->request;
+      *request = job->request;
     }
   else
     {
-- 
GitLab