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