forked from enlightenment/enlightenment
prevent editing of session recovery remembers
find/create new ones in this case
This commit is contained in:
parent
a93aadfe01
commit
890008cdf2
|
@ -23,6 +23,7 @@ struct _E_Config_Dialog_Data
|
|||
{
|
||||
E_Client *client;
|
||||
E_Remember *rem;
|
||||
E_Remember *backup_rem;
|
||||
/*- BASIC -*/
|
||||
int mode;
|
||||
int warned;
|
||||
|
@ -141,6 +142,9 @@ _fill_data(E_Config_Dialog_Data *cfdata)
|
|||
else
|
||||
rem = cfdata->rem;
|
||||
|
||||
if (ec && rem && (rem->apply & E_REMEMBER_APPLY_UUID))
|
||||
cfdata->backup_rem = rem = e_remember_find_usable(ec);
|
||||
|
||||
if (rem)
|
||||
{
|
||||
if (rem->name && rem->name[0])
|
||||
|
@ -316,10 +320,11 @@ _free_data(E_Config_Dialog *cfd EINA_UNUSED, E_Config_Dialog_Data *cfdata)
|
|||
|
||||
if (cfdata->client)
|
||||
{
|
||||
if (!cfdata->applied && cfdata->client->remember)
|
||||
E_Remember *rem = cfdata->backup_rem ?: cfdata->client->remember;
|
||||
if (!cfdata->applied && rem)
|
||||
{
|
||||
e_remember_unuse(cfdata->client->remember);
|
||||
e_remember_del(cfdata->client->remember);
|
||||
e_remember_unuse(rem);
|
||||
e_remember_del(rem);
|
||||
e_config_save_queue();
|
||||
}
|
||||
|
||||
|
@ -413,7 +418,7 @@ _basic_apply_data(E_Config_Dialog *cfd EINA_UNUSED, E_Config_Dialog_Data *cfdata
|
|||
{
|
||||
/* Actually take our cfdata settings and apply them in real life */
|
||||
E_Client *ec = cfdata->client;
|
||||
E_Remember *rem = ec->remember;
|
||||
E_Remember *rem = cfdata->backup_rem ?: ec->remember;
|
||||
|
||||
if (cfdata->mode == MODE_NOTHING)
|
||||
{
|
||||
|
@ -421,8 +426,8 @@ _basic_apply_data(E_Config_Dialog *cfd EINA_UNUSED, E_Config_Dialog_Data *cfdata
|
|||
{
|
||||
e_remember_unuse(rem);
|
||||
e_remember_del(rem);
|
||||
e_config_save_queue();
|
||||
}
|
||||
e_config_save_queue();
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
@ -431,7 +436,8 @@ _basic_apply_data(E_Config_Dialog *cfd EINA_UNUSED, E_Config_Dialog_Data *cfdata
|
|||
rem = e_remember_new();
|
||||
if (rem)
|
||||
{
|
||||
ec->remember = rem;
|
||||
if ((!ec->remember) || (!(ec->remember->apply & E_REMEMBER_APPLY_UUID)))
|
||||
ec->remember = rem;
|
||||
cfdata->applied = 0;
|
||||
}
|
||||
else
|
||||
|
@ -450,7 +456,8 @@ _basic_apply_data(E_Config_Dialog *cfd EINA_UNUSED, E_Config_Dialog_Data *cfdata
|
|||
rem->apply = cfdata->mode;
|
||||
rem->apply_first_only = 0;
|
||||
|
||||
e_remember_use(rem);
|
||||
if (ec->remember == rem)
|
||||
e_remember_use(rem);
|
||||
e_remember_update(ec);
|
||||
cfdata->applied = 1;
|
||||
e_config_save_queue();
|
||||
|
@ -463,7 +470,7 @@ _advanced_apply_data(E_Config_Dialog *cfd EINA_UNUSED, E_Config_Dialog_Data *cfd
|
|||
E_Client *ec = cfdata->client;
|
||||
E_Remember *rem;
|
||||
|
||||
if (ec) rem = ec->remember;
|
||||
if (ec) rem = cfdata->backup_rem ?: ec->remember;
|
||||
else rem = cfdata->rem;
|
||||
|
||||
if (!rem)
|
||||
|
@ -624,8 +631,9 @@ _advanced_apply_data(E_Config_Dialog *cfd EINA_UNUSED, E_Config_Dialog_Data *cfd
|
|||
{
|
||||
_check_matches(rem, 1);
|
||||
rem->keep_settings = 0;
|
||||
cfdata->client->remember = rem;
|
||||
e_remember_update(cfdata->client);
|
||||
if ((!ec->remember) || (!(ec->remember->apply & E_REMEMBER_APPLY_UUID)))
|
||||
ec->remember = rem;
|
||||
e_remember_update(ec);
|
||||
cfdata->applied = 1;
|
||||
}
|
||||
rem->keep_settings = cfdata->remember.keep_settings;
|
||||
|
|
Loading…
Reference in New Issue