ibus-xkb-layouts: Support ibus-1.4.
I've confirmed it could compile with the new API, but I haven't checked if it works correctly.
BUG=chromium-os:9810
TEST=manually
Change-Id: I22103e7d91aa1216699701d9c9cfe8f2597068a9
Review URL: http://codereview.chromium.org/5449001
diff --git a/src/main.c b/src/main.c
index 65275f3..a539ccd 100644
--- a/src/main.c
+++ b/src/main.c
@@ -48,7 +48,11 @@
engines = ibus_component_get_engines (component);
for (p = engines; p != NULL; p = p->next) {
IBusEngineDesc *engine = (IBusEngineDesc *)p->data;
+#if IBUS_CHECK_VERSION(1, 3, 99)
+ ibus_factory_add_engine (factory, ibus_engine_desc_get_name(engine), IBUS_TYPE_XKB_LAYOUT_ENGINE);
+#else
ibus_factory_add_engine (factory, engine->name, IBUS_TYPE_XKB_LAYOUT_ENGINE);
+#endif
}
if (ibus) {
diff --git a/src/xkbutil.c b/src/xkbutil.c
index 59eb4cd..2bb258a 100644
--- a/src/xkbutil.c
+++ b/src/xkbutil.c
@@ -33,6 +33,21 @@
engine_hotkeys = "Muhenkan";
}
+ /* set default rank to 0 */
+ gint rank = 0;
+ if (g_strcmp0(layout, "us") == 0 && (!variant || !*variant)) {
+ rank = 100;
+ }
+
+#if IBUS_CHECK_VERSION(1, 3, 99)
+ engine = ibus_engine_desc_new_varargs("name", engine_name,
+ "longname", (engine_longname ? engine_longname : layout_desc),
+ "language", language,
+ "layout", (engine_layout ? engine_layout : layout),
+ "hotkeys", engine_hotkeys,
+ "rank", rank,
+ NULL);
+#else
engine = ibus_engine_desc_new2(engine_name,
engine_longname ? engine_longname : layout_desc,
"",
@@ -42,13 +57,8 @@
"",
engine_layout ? engine_layout : layout,
engine_hotkeys);
-
- /* set default rank to 0 */
- engine->rank = 0;
-
- if (g_strcmp0(layout, "us") == 0 && (!variant || !*variant)) {
- engine->rank = 100;
- }
+ engine->rank = rank;
+#endif
g_free (engine_name);
g_free (engine_longname);