131 lines
4.5 KiB
Diff
131 lines
4.5 KiB
Diff
|
Patch to embed hotkeys and symbol property in component XML.
|
||
|
Index: ibus-m17n-1.3.2/configure.ac
|
||
|
===================================================================
|
||
|
--- ibus-m17n-1.3.2.orig/configure.ac
|
||
|
+++ ibus-m17n-1.3.2/configure.ac
|
||
|
@@ -122,6 +122,10 @@ AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GET
|
||
|
AM_GNU_GETTEXT([external])
|
||
|
AM_GNU_GETTEXT_VERSION(0.16.1)
|
||
|
|
||
|
+# hotkeys in component xml
|
||
|
+IBUS_WITH_HOTKEYS
|
||
|
+IBUS_SET_SYMBOL([?])
|
||
|
+
|
||
|
|
||
|
# OUTPUT files
|
||
|
AC_CONFIG_FILES([ po/Makefile.in
|
||
|
Index: ibus-m17n-1.3.2/m4/ibus.m4
|
||
|
===================================================================
|
||
|
--- /dev/null
|
||
|
+++ ibus-m17n-1.3.2/m4/ibus.m4
|
||
|
@@ -0,0 +1,52 @@
|
||
|
+# IBUS_WITH_HOTKEYS([DEFAULT])
|
||
|
+AC_DEFUN([IBUS_WITH_HOTKEYS], [
|
||
|
+ IBUS_HOTKEYS_DEFAULT=m4_default([$1], [Control+space,Zenkaku_Hankaku])
|
||
|
+ AC_ARG_WITH(hotkeys,
|
||
|
+ [AC_HELP_STRING([--with-hotkeys=HOTKEYS],
|
||
|
+ [Use hotkeys for ibus bridge mode. (available value: yes/no/keys)])],
|
||
|
+ [with_hotkeys="$withval"],
|
||
|
+ [with_hotkeys="no"])
|
||
|
+ if test x$with_hotkeys = xno; then
|
||
|
+ IBUS_HOTKEYS_XML="<!-- <hotkeys>${IBUS_HOTKEYS_DEFAULT}</hotkeys> -->"
|
||
|
+ elif test x$with_hotkeys = xyes -o x$with_hotkeys = x; then
|
||
|
+ IBUS_HOTKEYS="$IBUS_HOTKEYS_DEFAULT"
|
||
|
+ IBUS_HOTKEYS_XML="<hotkeys>${IBUS_HOTKEYS}</hotkeys>"
|
||
|
+ else
|
||
|
+ IBUS_HOTKEYS="$with_hotkeys"
|
||
|
+ IBUS_HOTKEYS_XML="<hotkeys>${IBUS_HOTKEYS}</hotkeys>"
|
||
|
+ fi
|
||
|
+ if test x$IBUS_HOTKEYS != x; then
|
||
|
+ AC_DEFINE_UNQUOTED(IBUS_IBUS_HOTKEYS, ["$IBUS_HOTKEYS"],
|
||
|
+ [IME specific hotkeys for IBus])
|
||
|
+ AC_SUBST(IBUS_HOTKEYS)
|
||
|
+ fi
|
||
|
+ AC_SUBST(IBUS_HOTKEYS_XML)
|
||
|
+])
|
||
|
+
|
||
|
+# IBUS_SET_SYMBOL(SYMBOL)
|
||
|
+AC_DEFUN([IBUS_SET_SYMBOL], [
|
||
|
+ IBUS_SYMBOL="$1"
|
||
|
+ if test x$PYTHON = x; then
|
||
|
+ AM_PATH_PYTHON([2.5])
|
||
|
+ fi
|
||
|
+ AC_MSG_CHECKING([if ibus supports icon symbol])
|
||
|
+ $PYTHON <<_IBUS_SYMBOL_TEST
|
||
|
+import ibus
|
||
|
+engine = ibus.EngineDesc('test')
|
||
|
+exit(not hasattr(engine, 'symbol'))
|
||
|
+_IBUS_SYMBOL_TEST
|
||
|
+ if test $? -eq 0; then
|
||
|
+ IBUS_SYMBOL_XML="<symbol>${IBUS_SYMBOL}</symbol>"
|
||
|
+ AC_MSG_RESULT([yes])
|
||
|
+ else
|
||
|
+ IBUS_SYMBOL_XML="<!-- <symbol>${IBUS_SYMBOL}</symbol> -->"
|
||
|
+ IBUS_SYMBOL=
|
||
|
+ AC_MSG_RESULT([no])
|
||
|
+ fi
|
||
|
+ if test x$IBUS_SYMBOL != x; then
|
||
|
+ AC_DEFINE_UNQUOTED([IBUS_SYMBOL], ["$IBUS_SYMBOL"],
|
||
|
+ [Icon symbol string for IBus])
|
||
|
+ AC_SUBST(IBUS_SYMBOL)
|
||
|
+ fi
|
||
|
+ AC_SUBST(IBUS_SYMBOL_XML)
|
||
|
+])
|
||
|
Index: ibus-m17n-1.3.2/src/default.xml.in.in
|
||
|
===================================================================
|
||
|
--- ibus-m17n-1.3.2.orig/src/default.xml.in.in
|
||
|
+++ ibus-m17n-1.3.2/src/default.xml.in.in
|
||
|
@@ -254,5 +254,7 @@
|
||
|
<name>m17n:*</name>
|
||
|
<rank>0</rank>
|
||
|
<preedit-highlight>FALSE</preedit-highlight>
|
||
|
+ @IBUS_HOTKEYS_XML@
|
||
|
+ @IBUS_SYMBOL_XML@
|
||
|
</engine>
|
||
|
</engines>
|
||
|
Index: ibus-m17n-1.3.2/src/m17nutil.c
|
||
|
===================================================================
|
||
|
--- ibus-m17n-1.3.2.orig/src/m17nutil.c
|
||
|
+++ ibus-m17n-1.3.2/src/m17nutil.c
|
||
|
@@ -122,6 +122,8 @@ ibus_m17n_engine_new (MSymbol lang,
|
||
|
"icon", engine_icon ? engine_icon : "",
|
||
|
"layout", "us",
|
||
|
"rank", config->rank,
|
||
|
+ "hotkeys", config->hotkeys ? config->hotkeys : "",
|
||
|
+ "symbol", config->symbol ? config->symbol : "",
|
||
|
NULL);
|
||
|
#else
|
||
|
engine = ibus_engine_desc_new (engine_name,
|
||
|
@@ -282,6 +284,14 @@ ibus_m17n_engine_config_parse_xml_node (
|
||
|
cnode->config.rank = atoi (sub_node->text);
|
||
|
continue;
|
||
|
}
|
||
|
+ if (g_strcmp0 (sub_node->name , "hotkeys") == 0) {
|
||
|
+ cnode->config.hotkeys = g_strdup (sub_node->text);
|
||
|
+ continue;
|
||
|
+ }
|
||
|
+ if (g_strcmp0 (sub_node->name , "symbol") == 0) {
|
||
|
+ cnode->config.symbol = g_strdup (sub_node->text);
|
||
|
+ continue;
|
||
|
+ }
|
||
|
if (g_strcmp0 (sub_node->name , "preedit-highlight") == 0) {
|
||
|
if (g_ascii_strcasecmp ("TRUE", sub_node->text) == 0)
|
||
|
cnode->config.preedit_highlight = TRUE;
|
||
|
Index: ibus-m17n-1.3.2/src/m17nutil.h
|
||
|
===================================================================
|
||
|
--- ibus-m17n-1.3.2.orig/src/m17nutil.h
|
||
|
+++ ibus-m17n-1.3.2/src/m17nutil.h
|
||
|
@@ -14,6 +14,12 @@ struct _IBusM17NEngineConfig {
|
||
|
/* engine rank */
|
||
|
gint rank;
|
||
|
|
||
|
+ /* hotkeys */
|
||
|
+ gchar *hotkeys;
|
||
|
+
|
||
|
+ /* symbol */
|
||
|
+ gchar *symbol;
|
||
|
+
|
||
|
/* whether to highlight preedit */
|
||
|
gboolean preedit_highlight;
|
||
|
|