https://bugzilla.xfce.org/show_bug.cgi?id=14576

--- Comment #16 from HYPERION <h1p8r...@yandex.com> ---
Comment on attachment 7866
  --> https://bugzilla.xfce.org/attachment.cgi?id=7866
improved patch (memory cleaning)

>diff -rNaud Thunar-1.8.1-OLD/thunar/thunar-icon-factory.c 
>Thunar-1.8.1/thunar/thunar-icon-factory.c
>--- Thunar-1.8.1-OLD/thunar/thunar-icon-factory.c      2018-06-12 
>03:47:24.000000000 +0200
>+++ Thunar-1.8.1/thunar/thunar-icon-factory.c  2018-08-06 00:42:05.485135360 
>+0200
>@@ -792,7 +792,50 @@
>   return thunar_icon_factory_lookup_icon (factory, name, size, wants_default);
> }
> 
>-
>+/**
>+ * thunar_icon_factory_check_folder_icon:
>+ * @file       : a #ThunarFile.
>+ *
>+ * Return value: gchar pointer containing full path to 
>+ * folder.xxx image or NULL if no image found.
>+ **/
>+gchar *
>+thunar_icon_factory_check_folder_icon (       ThunarFile                      
>*file)
>+{
>+    
>+      gchar     *folder_icon; 
>+      gchar     *path;        
>+      
>+      path = g_file_get_path (thunar_file_get_file (file));
>+      
>+      folder_icon = g_strconcat (path, "/", ".folder.jpg", NULL);
>+      if ( g_file_test(folder_icon, G_FILE_TEST_EXISTS)) 
>+        {
>+              g_free (path);
>+              return folder_icon;
>+        }
>+      folder_icon = g_strconcat (path, "/", "folder.jpg", NULL);
>+      if ( g_file_test(folder_icon, G_FILE_TEST_EXISTS)) 
>+        {
>+              g_free (path);
>+              return folder_icon;
>+        }     
>+      folder_icon = g_strconcat (path, "/", ".folder.png", NULL);
>+      if ( g_file_test(folder_icon, G_FILE_TEST_EXISTS)) 
>+        {
>+              g_free (path);
>+              return folder_icon;
>+        }     
>+      folder_icon = g_strconcat (path, "/", "folder.png", NULL);
>+      if ( g_file_test(folder_icon, G_FILE_TEST_EXISTS)) 
>+        {
>+              g_free (path);
>+              return folder_icon;
>+        }
>+      g_free (path);
>+      folder_icon = NULL;
>+      return folder_icon;
>+}
> 
> /**
>  * thunar_icon_factory_load_file_icon:
>@@ -819,8 +862,9 @@
>   GIcon           *gicon;
>   const gchar     *icon_name;
>   const gchar     *custom_icon;
>+  const gchar     *folder_icon;
>   ThunarIconStore *store;
>-
>+  
>   _thunar_return_val_if_fail (THUNAR_IS_ICON_FACTORY (factory), NULL);
>   _thunar_return_val_if_fail (THUNAR_IS_FILE (file), NULL);
>   _thunar_return_val_if_fail (icon_size > 0, NULL);
>@@ -836,7 +880,7 @@
>       return g_object_ref (store->icon);
>     }
> 
>-  /* check if we have a custom icon for this file */
>+  /* check if we have a custom icon for this file */    
>   custom_icon = thunar_file_get_custom_icon (file);
>   if (custom_icon != NULL)
>     {
>@@ -846,6 +890,21 @@
>         return icon;
>     }
> 
>+  /* check if thumbnails are enabled and we have a "?folder.xxx" icon for 
>this folder */ 
>+  if (thunar_icon_factory_get_show_thumbnail (factory, file)
>+      && thunar_file_is_directory (file))
>+      {
>+        folder_icon = thunar_icon_factory_check_folder_icon (file);
>+        if (folder_icon != NULL)
>+              {
>+                /* try to load the icon */
>+                icon = thunar_icon_factory_lookup_icon (factory, folder_icon, 
>icon_size, FALSE);
>+                g_free(folder_icon);
>+                if (G_LIKELY (icon != NULL))
>+                  return icon;
>+              }
>+        }
>+
>   /* check if thumbnails are enabled and we can display a thumbnail for the 
> item */
>   if (thunar_icon_factory_get_show_thumbnail (factory, file)
>       && thunar_file_is_regular (file))

-- 
You are receiving this mail because:
You are the assignee for the bug.
_______________________________________________
Xfce-bugs mailing list
Xfce-bugs@xfce.org
https://mail.xfce.org/mailman/listinfo/xfce-bugs

Reply via email to