aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/ecore_imf
diff options
context:
space:
mode:
authorCarsten Haitzler (Rasterman) <raster@rasterman.com>2016-01-18 17:21:50 +0900
committerCarsten Haitzler (Rasterman) <raster@rasterman.com>2016-01-18 17:23:56 +0900
commit6f684f3a6a6cdb840c4231c0c626cde5ba1a22b1 (patch)
tree3e42e319504ceb9b0cc74f0e128b9b9aa8fd78f4 /src/lib/ecore_imf
parentembryo: change the log catagory of printf in embryo (diff)
downloadefl-6f684f3a6a6cdb840c4231c0c626cde5ba1a22b1.tar.gz
ecore imf: fix imf module load hangs when not even configured
so on some distributions scim tries to connect and hangs waiting for connect to work. this is a problem for just loading any imf module unless EXPLICITLY configured, so disable using an imf module unless it is specifically configured to work. this fixes this hang. this is a workaround though, but what else are we to do? @fix
Diffstat (limited to 'src/lib/ecore_imf')
-rw-r--r--src/lib/ecore_imf/ecore_imf_context.c26
1 files changed, 18 insertions, 8 deletions
diff --git a/src/lib/ecore_imf/ecore_imf_context.c b/src/lib/ecore_imf/ecore_imf_context.c
index 540178537e..4c857753c5 100644
--- a/src/lib/ecore_imf/ecore_imf_context.c
+++ b/src/lib/ecore_imf/ecore_imf_context.c
@@ -34,6 +34,8 @@ ecore_imf_context_available_ids_by_canvas_type_get(const char *canvas_type)
* 'en', 'en_UK' against 'en_US' => 2
* all locales, against '*' => 1
*/
+/* XXX: disable because nto used anymore - see below
+ * ecore_imf_context_default_id_by_canvas_type_get
static int
_ecore_imf_context_match_locale(const char *locale, const char *against, int against_len)
{
@@ -48,6 +50,7 @@ _ecore_imf_context_match_locale(const char *locale, const char *against, int aga
return 0;
}
+*/
EAPI const char *
ecore_imf_context_default_id_get(void)
@@ -56,16 +59,10 @@ ecore_imf_context_default_id_get(void)
}
EAPI const char *
-ecore_imf_context_default_id_by_canvas_type_get(const char *canvas_type)
+ecore_imf_context_default_id_by_canvas_type_get(const char *canvas_type EINA_UNUSED)
{
- const char *id;
- Eina_List *modules;
- Ecore_IMF_Module *module;
- char *locale;
- char *tmp;
- int best_goodness = 0;
+ const char *id = getenv("ECORE_IMF_MODULE");
- id = getenv("ECORE_IMF_MODULE");
if (id)
{
if (strcmp(id, "none") == 0) return NULL;
@@ -79,6 +76,18 @@ ecore_imf_context_default_id_by_canvas_type_get(const char *canvas_type)
if (ecore_imf_module_get(id)) return id;
}
}
+ return NULL;
+/* XXX: I am not sure we need/want this. this causes imf modules to be
+ * used where ECORE_IMF_MODULE is not set (and this causes issues with things
+ * like scim where on some distros and some versions an scim connect BLOCKS
+ * and if no scim is around this means an app blocks/hangs ... so disable
+ * this so either you are in wayland mode OR you have to set
+ * ECORE_IMF_MODULE
+ Eina_List *modules;
+ Ecore_IMF_Module *module;
+ char *locale;
+ char *tmp;
+ int best_goodness = 0;
modules = ecore_imf_module_available_get();
if (!modules) return NULL;
@@ -119,6 +128,7 @@ ecore_imf_context_default_id_by_canvas_type_get(const char *canvas_type)
free(locale);
return id;
+ */
}
EAPI const Ecore_IMF_Context_Info *