From 81d6713324cb7a784ae163610e45758b3fc40e54 Mon Sep 17 00:00:00 2001 From: "Carsten Haitzler (Rasterman)" Date: Mon, 11 Aug 2014 08:43:52 +0900 Subject: [PATCH] ecore-imf - fix broken state on non-x11 environments this fixes ecore-imf to auto-pick scim or wayland vased in DISPLAY and WALAND_DISPLAY env vars. it's not a perfect/good/correct fix. it should be picking based on canvas engine type, but that is a far more invasive effort, so for release, do this simple one that brings back wayland input panel and keeps x11 input methods going as long as app is either x11 (DISPLAY) or wayland (WAYLAND_DISPLAY). if both are set, it'll get it wrong. as i said - that's a more invasive fix. --- src/lib/ecore_imf/ecore_imf_context.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/lib/ecore_imf/ecore_imf_context.c b/src/lib/ecore_imf/ecore_imf_context.c index 3dbe5274e5..8a0cf1face 100644 --- a/src/lib/ecore_imf/ecore_imf_context.c +++ b/src/lib/ecore_imf/ecore_imf_context.c @@ -71,6 +71,13 @@ ecore_imf_context_default_id_by_canvas_type_get(const char *canvas_type) if (strcmp(id, "none") == 0) return NULL; if (ecore_imf_module_get(id)) return id; } + else + { + if (getenv("DISPLAY")) id = "scim"; + else if (getenv("WAYLAND_DISPLAY")) id = "wayland"; + if (ecore_imf_module_get(id)) return id; + return NULL; + } modules = ecore_imf_module_available_get(); if (!modules) return NULL;