From 0ce64e39cff8e8800d6f820a0f742d6ab3b23a75 Mon Sep 17 00:00:00 2001 From: Carsten Haitzler Date: Sun, 25 Nov 2001 12:49:39 +0000 Subject: [PATCH] and in an optimising spree i broke the bg reload if you replaced the file.. fix fix fix :) SVN revision: 5734 --- src/view.c | 13 +++++++++---- src/view.h | 1 + 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/view.c b/src/view.c index 94b4a992a..bcaf43b3c 100644 --- a/src/view.c +++ b/src/view.c @@ -2345,6 +2345,7 @@ e_view_bg_load(E_View *v) if (bg) { v->bg = bg; + v->bg_mod = e_file_mod_time(v->bg_file); if (v->evas) { e_background_realize(v->bg, v->evas); @@ -2369,8 +2370,14 @@ e_view_bg_reload_timeout(int val, void *data) v = data; if (!strcmp(v->prev_bg_file, v->bg_file)) { - D("abort bg reload - same damn file\n"); - D_RETURN; + time_t new_mod; + + new_mod = e_file_mod_time(v->bg_file); + if (new_mod == v->bg_mod) + { + D("abort bg reload - same damn file\n"); + D_RETURN; + } } if (v->bg) { @@ -2400,8 +2407,6 @@ e_view_bg_change(E_View *v, char *file) D_ENTER; if (!(!strcmp(file, ".e_background.bg.db"))) return; - IF_FREE(v->prev_bg_file); - e_strdup(v->prev_bg_file, ""); sprintf(buf, "background_reload:%s", v->dir); ecore_add_event_timer(buf, 0.5, e_view_bg_reload_timeout, 0, v); diff --git a/src/view.h b/src/view.h index f783623f4..fcc68f51b 100644 --- a/src/view.h +++ b/src/view.h @@ -132,6 +132,7 @@ struct _E_View char *bg_file; char *prev_bg_file; + time_t bg_mod; E_Background *bg; struct {