diff options
Diffstat (limited to 'libcaja-private/caja-file.c')
-rw-r--r-- | libcaja-private/caja-file.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/libcaja-private/caja-file.c b/libcaja-private/caja-file.c index c32e07c4..acf31926 100644 --- a/libcaja-private/caja-file.c +++ b/libcaja-private/caja-file.c @@ -2113,7 +2113,6 @@ update_info_internal (CajaFile *file, int sort_order; time_t atime, mtime, ctime; time_t trash_time; - GTimeVal g_trash_time; const char * time_string; const char *symlink_name, *mime_type, *selinux_context, *thumbnail_path; GFileType file_type; @@ -2489,8 +2488,21 @@ update_info_internal (CajaFile *file, trash_time = 0; time_string = g_file_info_get_attribute_string (info, G_FILE_ATTRIBUTE_TRASH_DELETION_DATE); if (time_string != NULL) { +#if GLIB_CHECK_VERSION(2,61,2) + GDateTime *dt; + GTimeZone *tz; + tz = g_time_zone_new_local (); + dt = g_date_time_new_from_iso8601 (time_string, tz); + if (dt) { + trash_time = (time_t) g_date_time_to_unix (dt); + g_date_time_unref (dt); + } + g_time_zone_unref (tz); +#else + GTimeVal g_trash_time; g_time_val_from_iso8601 (time_string, &g_trash_time); trash_time = g_trash_time.tv_sec; +#endif } if (file->details->trash_time != trash_time) { changed = TRUE; |