ecore-imf - fix broken state on non-x11 environments
authorCarsten Haitzler (Rasterman) <raster@rasterman.com>
Sun, 10 Aug 2014 23:43:52 +0000 (08:43 +0900)
committerCarsten Haitzler (Rasterman) <raster@rasterman.com>
Sun, 10 Aug 2014 23:46:29 +0000 (08:46 +0900)
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

index 3dbe527..8a0cf1f 100644 (file)
@@ -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;