diff options
author | Mike Blumenkrantz <michael.blumenkrantz@gmail.com> | 2013-02-18 08:07:44 +0000 |
---|---|---|
committer | Mike Blumenkrantz <michael.blumenkrantz@gmail.com> | 2013-02-18 08:07:44 +0000 |
commit | 3f7627e738cb9f1b779cd8e02d5a6105b7579194 (patch) | |
tree | e85370c7ca3f56ae81132fc4c3f3d44df4866801 | |
parent | 073cb0e61c16d3839a35aa4e8d7d14537ef8cc4e (diff) | |
download | enlightenment-3f7627e738cb9f1b779cd8e02d5a6105b7579194.tar.gz enlightenment-3f7627e738cb9f1b779cd8e02d5a6105b7579194.tar.xz enlightenment-3f7627e738cb9f1b779cd8e02d5a6105b7579194.zip |
backport imc dialog fix
SVN revision: 84041
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | NEWS | 1 | ||||
-rw-r--r-- | src/modules/conf_intl/e_int_config_imc.c | 24 |
3 files changed, 12 insertions, 17 deletions
@@ -1,3 +1,7 @@ +2013-02-18 Mike Blumenkrantz + + * fixed disable of input methods in input method config dialog + 2013-02-11 Mike Blumenkrantz * fixed bug where pointer warping to new clients would start at a random location @@ -34,6 +34,7 @@ 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 Changes since 0.17.0: diff --git a/src/modules/conf_intl/e_int_config_imc.c b/src/modules/conf_intl/e_int_config_imc.c index def3e4582..734cebe1e 100644 --- a/src/modules/conf_intl/e_int_config_imc.c +++ b/src/modules/conf_intl/e_int_config_imc.c @@ -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; - } - - if (!cfdata->imc_disable) - e_config->input_method = eina_stringshare_ref(cfdata->imc_current); + eina_stringshare_replace(&e_config->input_method, NULL); + 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(); |