diff options
Diffstat (limited to 'meta/packages/gnome/gnome-settings-daemon/mojito-cleanup.patch')
| -rw-r--r-- | meta/packages/gnome/gnome-settings-daemon/mojito-cleanup.patch | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/meta/packages/gnome/gnome-settings-daemon/mojito-cleanup.patch b/meta/packages/gnome/gnome-settings-daemon/mojito-cleanup.patch new file mode 100644 index 0000000000..1aff2d6d6f --- /dev/null +++ b/meta/packages/gnome/gnome-settings-daemon/mojito-cleanup.patch | |||
| @@ -0,0 +1,74 @@ | |||
| 1 | diff --git a/plugins/housekeeping/gsd-housekeeping-manager.c b/plugins/housekeeping/gsd-housekeeping-manager.c | ||
| 2 | index f84cfad..e8f474a 100644 | ||
| 3 | --- a/plugins/housekeeping/gsd-housekeeping-manager.c | ||
| 4 | +++ b/plugins/housekeeping/gsd-housekeeping-manager.c | ||
| 5 | @@ -85,9 +85,13 @@ thumb_data_free (gpointer data) | ||
| 6 | } | ||
| 7 | } | ||
| 8 | |||
| 9 | +typedef enum { | ||
| 10 | + HASH, | ||
| 11 | + HASH_PNG | ||
| 12 | +} FileType; | ||
| 13 | |||
| 14 | static GList * | ||
| 15 | -read_dir_for_purge (const char *path, GList *files) | ||
| 16 | +read_dir_for_purge (const char *path, GList *files, FileType type) | ||
| 17 | { | ||
| 18 | GFile *read_path; | ||
| 19 | GFileEnumerator *enum_dir; | ||
| 20 | @@ -105,9 +109,20 @@ read_dir_for_purge (const char *path, GList *files) | ||
| 21 | GFileInfo *info; | ||
| 22 | while ((info = g_file_enumerator_next_file (enum_dir, NULL, NULL)) != NULL) { | ||
| 23 | const char *name; | ||
| 24 | + gboolean prune = FALSE; | ||
| 25 | + | ||
| 26 | name = g_file_info_get_name (info); | ||
| 27 | |||
| 28 | - if (strlen (name) == 36 && strcmp (name + 32, ".png") == 0) { | ||
| 29 | + switch (type) { | ||
| 30 | + case HASH: | ||
| 31 | + prune = (strlen (name) == 36); | ||
| 32 | + break; | ||
| 33 | + case HASH_PNG: | ||
| 34 | + prune = (strlen (name) == 36 && strcmp (name + 32, ".png") == 0); | ||
| 35 | + break; | ||
| 36 | + } | ||
| 37 | + | ||
| 38 | + if (prune) { | ||
| 39 | ThumbData *td; | ||
| 40 | GFile *entry; | ||
| 41 | char *entry_path; | ||
| 42 | @@ -197,14 +212,14 @@ purge_thumbnail_cache (void) | ||
| 43 | ".thumbnails", | ||
| 44 | "normal", | ||
| 45 | NULL); | ||
| 46 | - files = read_dir_for_purge (path, NULL); | ||
| 47 | + files = read_dir_for_purge (path, NULL, HASH_PNG); | ||
| 48 | g_free (path); | ||
| 49 | |||
| 50 | path = g_build_filename (g_get_home_dir (), | ||
| 51 | ".thumbnails", | ||
| 52 | "large", | ||
| 53 | NULL); | ||
| 54 | - files = read_dir_for_purge (path, files); | ||
| 55 | + files = read_dir_for_purge (path, files, HASH_PNG); | ||
| 56 | g_free (path); | ||
| 57 | |||
| 58 | path = g_build_filename (g_get_home_dir (), | ||
| 59 | @@ -212,7 +227,14 @@ purge_thumbnail_cache (void) | ||
| 60 | "fail", | ||
| 61 | "gnome-thumbnail-factory", | ||
| 62 | NULL); | ||
| 63 | - files = read_dir_for_purge (path, files); | ||
| 64 | + files = read_dir_for_purge (path, files, HASH_PNG); | ||
| 65 | + g_free (path); | ||
| 66 | + | ||
| 67 | + path = g_build_filename (g_get_user_cache_dir (), | ||
| 68 | + "mojito", | ||
| 69 | + "thumbnails", | ||
| 70 | + NULL); | ||
| 71 | + files = read_dir_for_purge (path, files, HASH); | ||
| 72 | g_free (path); | ||
| 73 | |||
| 74 | g_get_current_time (¤t_time); | ||
