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_Client *client;
|
||||||
E_Remember *rem;
|
E_Remember *rem;
|
||||||
|
E_Remember *backup_rem;
|
||||||
/*- BASIC -*/
|
/*- BASIC -*/
|
||||||
int mode;
|
int mode;
|
||||||
int warned;
|
int warned;
|
||||||
|
@ -141,6 +142,9 @@ _fill_data(E_Config_Dialog_Data *cfdata)
|
||||||
else
|
else
|
||||||
rem = cfdata->rem;
|
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)
|
||||||
{
|
{
|
||||||
if (rem->name && rem->name[0])
|
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->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_unuse(rem);
|
||||||
e_remember_del(cfdata->client->remember);
|
e_remember_del(rem);
|
||||||
e_config_save_queue();
|
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 */
|
/* Actually take our cfdata settings and apply them in real life */
|
||||||
E_Client *ec = cfdata->client;
|
E_Client *ec = cfdata->client;
|
||||||
E_Remember *rem = ec->remember;
|
E_Remember *rem = cfdata->backup_rem ?: ec->remember;
|
||||||
|
|
||||||
if (cfdata->mode == MODE_NOTHING)
|
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_unuse(rem);
|
||||||
e_remember_del(rem);
|
e_remember_del(rem);
|
||||||
|
e_config_save_queue();
|
||||||
}
|
}
|
||||||
e_config_save_queue();
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -431,7 +436,8 @@ _basic_apply_data(E_Config_Dialog *cfd EINA_UNUSED, E_Config_Dialog_Data *cfdata
|
||||||
rem = e_remember_new();
|
rem = e_remember_new();
|
||||||
if (rem)
|
if (rem)
|
||||||
{
|
{
|
||||||
ec->remember = rem;
|
if ((!ec->remember) || (!(ec->remember->apply & E_REMEMBER_APPLY_UUID)))
|
||||||
|
ec->remember = rem;
|
||||||
cfdata->applied = 0;
|
cfdata->applied = 0;
|
||||||
}
|
}
|
||||||
else
|
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 = cfdata->mode;
|
||||||
rem->apply_first_only = 0;
|
rem->apply_first_only = 0;
|
||||||
|
|
||||||
e_remember_use(rem);
|
if (ec->remember == rem)
|
||||||
|
e_remember_use(rem);
|
||||||
e_remember_update(ec);
|
e_remember_update(ec);
|
||||||
cfdata->applied = 1;
|
cfdata->applied = 1;
|
||||||
e_config_save_queue();
|
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_Client *ec = cfdata->client;
|
||||||
E_Remember *rem;
|
E_Remember *rem;
|
||||||
|
|
||||||
if (ec) rem = ec->remember;
|
if (ec) rem = cfdata->backup_rem ?: ec->remember;
|
||||||
else rem = cfdata->rem;
|
else rem = cfdata->rem;
|
||||||
|
|
||||||
if (!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);
|
_check_matches(rem, 1);
|
||||||
rem->keep_settings = 0;
|
rem->keep_settings = 0;
|
||||||
cfdata->client->remember = rem;
|
if ((!ec->remember) || (!(ec->remember->apply & E_REMEMBER_APPLY_UUID)))
|
||||||
e_remember_update(cfdata->client);
|
ec->remember = rem;
|
||||||
|
e_remember_update(ec);
|
||||||
cfdata->applied = 1;
|
cfdata->applied = 1;
|
||||||
}
|
}
|
||||||
rem->keep_settings = cfdata->remember.keep_settings;
|
rem->keep_settings = cfdata->remember.keep_settings;
|
||||||
|
|
Loading…
Reference in New Issue