fix apply when disabling input methods in imc config dialog

SVN revision: 84040
This commit is contained in:
Mike Blumenkrantz 2013-02-18 08:05:59 +00:00
parent 94e1f82e23
commit 10c88cf222
3 changed files with 13 additions and 17 deletions

View File

@ -1,4 +1,9 @@
2013-02-18 Mike Blumenkrantz
* fixed disable of input methods in input method config dialog
2013-02-13 Deon Thomas
* Fixed Menu->Applications now only lists valid .desktop files, if the exec is missing it will not be added to the menu list.
2013-02-11 Mike Blumenkrantz

1
NEWS
View File

@ -172,3 +172,4 @@ Fixes:
* fixed bug where pointer warping to new clients would start at a random location
* fix crash when locking screen from Start gadget and then activating gadget again
* fixed bug where e_layout would ignore frozen state and crash
* fixed disable of input methods in input method config dialog

View File

@ -109,8 +109,7 @@ e_int_config_imc(E_Container *con, const char *params __UNUSED__)
static void
_fill_data(E_Config_Dialog_Data *cfdata)
{
if (e_config->input_method)
cfdata->imc_current = eina_stringshare_add(e_config->input_method);
cfdata->imc_current = eina_stringshare_ref(e_config->input_method);
if (cfdata->imc_current)
{
@ -119,10 +118,8 @@ _fill_data(E_Config_Dialog_Data *cfdata)
path = e_intl_imc_system_path_get();
if (!strncmp(cfdata->imc_current, path, strlen(path)))
cfdata->fmdir = 1;
cfdata->imc_disable = 0;
}
else
cfdata->imc_disable = 1;
cfdata->imc_disable = !cfdata->imc_current;
}
static void *
@ -179,19 +176,11 @@ _free_data(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata)
static int
_basic_apply_data(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata)
{
if (cfdata->imc_current)
{
if (e_config->input_method)
{
eina_stringshare_del(e_config->input_method);
e_config->input_method = NULL;
}
eina_stringshare_replace(&e_config->input_method, NULL);
if (!cfdata->imc_disable)
e_config->input_method = eina_stringshare_ref(cfdata->imc_current);
if (!cfdata->imc_disable)
e_config->input_method = eina_stringshare_ref(cfdata->imc_current);
e_intl_input_method_set(e_config->input_method);
}
e_intl_input_method_set(e_config->input_method);
e_config_save_queue();
return 1;
@ -307,6 +296,7 @@ _basic_create_widgets(E_Config_Dialog *cfd EINA_UNUSED, Evas *evas, E_Config_Dia
e_widget_on_change_hook_set(ob, _e_imc_list_change_cb, cfdata);
e_widget_size_min_set(ob, 175, 175);
cfdata->gui.imc_basic_list = ob;
_e_imc_imc_toggle(cfdata, NULL);
evas_event_freeze(evas_object_evas_get(ob));
edje_freeze();