add versioning to remembers to prevent badness when new properties are added

This commit is contained in:
Mike Blumenkrantz 2014-01-01 16:50:03 -05:00
parent 56ae997976
commit 9c5509b236
3 changed files with 18 additions and 1 deletions

View File

@ -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);

View File

@ -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

View File

@ -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;