diff --git a/src/bin/e_config.c b/src/bin/e_config.c index 7c0c550cd..6741b76a0 100644 --- a/src/bin/e_config.c +++ b/src/bin/e_config.c @@ -284,6 +284,7 @@ _e_config_edd_init(Eina_Bool old) #undef D #define T E_Remember #define D e_remember_edd + E_CONFIG_VAL(D, T, version, UINT); E_CONFIG_VAL(D, T, match, INT); E_CONFIG_VAL(D, T, no_reopen, INT); E_CONFIG_VAL(D, T, apply_first_only, UCHAR); diff --git a/src/bin/e_remember.c b/src/bin/e_remember.c index 60affe0c5..17fe0abdf 100644 --- a/src/bin/e_remember.c +++ b/src/bin/e_remember.c @@ -4,7 +4,7 @@ #define REMEMBER_SIMPLE 0 EAPI int E_EVENT_REMEMBER_UPDATE = -1; -EAPI E_Config_DD *e_remember_edd = NULL; +EAPI E_Config_DD *e_remember_edd = NULL; //created in e_config.c typedef struct _E_Remember_List E_Remember_List; @@ -223,6 +223,19 @@ EAPI void e_remember_use(E_Remember *rem) { rem->used_count++; + if (rem->version < E_REMEMBER_VERSION) + { + /* upgrade remembers as they get used */ + switch (rem->version) + { + case 0: + rem->prop.opacity = 255; //don't let people wreck themselves with old configs + //fall through + default: break; + } + rem->version = E_REMEMBER_VERSION; + e_config_save_queue(); + } } EAPI void diff --git a/src/bin/e_remember.h b/src/bin/e_remember.h index d96440cee..991075e83 100644 --- a/src/bin/e_remember.h +++ b/src/bin/e_remember.h @@ -8,6 +8,8 @@ typedef struct E_Event_Remember_Update } E_Event_Remember_Update; typedef struct _E_Remember E_Remember; +#define E_REMEMBER_VERSION 1 + #define E_REMEMBER_MATCH_NAME (1 << 0) #define E_REMEMBER_MATCH_CLASS (1 << 1) #define E_REMEMBER_MATCH_TITLE (1 << 2) @@ -43,6 +45,7 @@ typedef struct _E_Remember E_Remember; struct _E_Remember { + unsigned int version; int match; int no_reopen; unsigned char apply_first_only;