diff options
author | Carsten Haitzler (Rasterman) <raster@rasterman.com> | 2019-11-16 12:58:34 +0000 |
---|---|---|
committer | Carsten Haitzler (Rasterman) <raster@rasterman.com> | 2019-11-16 13:02:10 +0000 |
commit | 7096634a3969fdef8e8b3d13a70d034cc0ea41e8 (patch) | |
tree | aaf0d50bbee02d2e4548583db14d1f36bfff726a /src/lib/efreet | |
parent | f8cf378868cd12f870f2eee2100b96b72c5bb08c (diff) |
efreet - consider ctime changes as changes too
some distros do odd things with source desktop files and set their
mtime timestamps to 0... thus we can't tell that there is a change.
thier ctimes do change, so consider the newer of either of these as
the modification time to not miss updates
@fix
Diffstat (limited to 'src/lib/efreet')
-rw-r--r-- | src/lib/efreet/efreet_desktop.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/lib/efreet/efreet_desktop.c b/src/lib/efreet/efreet_desktop.c index e56d06c908..f0c46d4c33 100644 --- a/src/lib/efreet/efreet_desktop.c +++ b/src/lib/efreet/efreet_desktop.c | |||
@@ -218,7 +218,17 @@ efreet_desktop_empty_new(const char *file) | |||
218 | if (!desktop) return NULL; | 218 | if (!desktop) return NULL; |
219 | 219 | ||
220 | desktop->orig_path = strdup(file); | 220 | desktop->orig_path = strdup(file); |
221 | desktop->load_time = ecore_file_mod_time(file); | 221 | do |
222 | { | ||
223 | struct stat st; | ||
224 | |||
225 | if (!stat(desktop->orig_path, &st)) | ||
226 | { | ||
227 | time_t modtime = st.st_mtime; | ||
228 | if (modtime < st.st_ctime) modtime = st.st_ctime; | ||
229 | desktop->load_time = modtime; | ||
230 | } | ||
231 | } while (0); | ||
222 | 232 | ||
223 | desktop->ref = 1; | 233 | desktop->ref = 1; |
224 | 234 | ||