diff --git a/ibus-m17n-default-xml-override.patch b/ibus-m17n-default-xml-override.patch index 744e6a4..39d7935 100644 --- a/ibus-m17n-default-xml-override.patch +++ b/ibus-m17n-default-xml-override.patch @@ -1,4 +1,4 @@ -From 736e3f89d3afe368bec030b1f01d36b417fcac5c Mon Sep 17 00:00:00 2001 +From e37bcc53f1d145e10974fb0bb91802d735921fcd Mon Sep 17 00:00:00 2001 From: Daiki Ueno Date: Wed, 31 Aug 2011 11:44:46 +0900 Subject: [PATCH 1/5] Update the format of default.xml to allow override. @@ -389,7 +389,7 @@ index 5c5d67d..dc93fd3 100644 - diff --git a/src/engine.c b/src/engine.c -index b68b13e..f1e3068 100644 +index cfb853c..dcff0c7 100644 --- a/src/engine.c +++ b/src/engine.c @@ -290,6 +290,8 @@ ibus_m17n_engine_class_init (IBusM17NEngineClass *klass) @@ -402,10 +402,10 @@ index b68b13e..f1e3068 100644 G_CALLBACK(ibus_m17n_config_value_changed), klass); diff --git a/src/m17nutil.c b/src/m17nutil.c -index 1150cc4..00b7194 100644 +index 42aa8f6..b06f71d 100644 --- a/src/m17nutil.c +++ b/src/m17nutil.c -@@ -9,12 +9,18 @@ static MConverter *utf8_converter = NULL; +@@ -13,12 +13,18 @@ static MConverter *utf8_converter = NULL; #define DEFAULT_XML (SETUPDIR "/default.xml") @@ -426,7 +426,7 @@ index 1150cc4..00b7194 100644 static GSList *config_list = NULL; -@@ -253,20 +259,31 @@ ibus_m17n_list_engines (void) +@@ -257,20 +263,31 @@ ibus_m17n_list_engines (void) IBusM17NEngineConfig * ibus_m17n_get_engine_config (const gchar *engine_name) { @@ -464,7 +464,7 @@ index 1150cc4..00b7194 100644 { GList *p; -@@ -280,6 +297,7 @@ ibus_m17n_engine_config_parse_xml_node (IBusM17NEngineConfigNode *cnode, +@@ -284,6 +301,7 @@ ibus_m17n_engine_config_parse_xml_node (IBusM17NEngineConfigNode *cnode, } if (g_strcmp0 (sub_node->name , "rank") == 0) { cnode->config.rank = atoi (sub_node->text); @@ -472,7 +472,7 @@ index 1150cc4..00b7194 100644 continue; } if (g_strcmp0 (sub_node->name , "preedit-highlight") == 0) { -@@ -288,6 +306,7 @@ ibus_m17n_engine_config_parse_xml_node (IBusM17NEngineConfigNode *cnode, +@@ -292,6 +310,7 @@ ibus_m17n_engine_config_parse_xml_node (IBusM17NEngineConfigNode *cnode, else if (g_ascii_strcasecmp ("FALSE", sub_node->text) != 0) g_warning ("<%s> element contains invalid boolean value %s", sub_node->name, sub_node->text); @@ -480,7 +480,7 @@ index 1150cc4..00b7194 100644 continue; } g_warning (" element contains invalid element <%s>", -@@ -316,7 +335,7 @@ ibus_m17n_get_component (void) +@@ -320,7 +339,7 @@ ibus_m17n_get_component (void) if (node && g_strcmp0 (node->name, "engines") == 0) { for (p = node->sub_nodes; p != NULL; p = p->next) { XMLNode *sub_node = p->data; @@ -489,7 +489,7 @@ index 1150cc4..00b7194 100644 if (g_strcmp0 (sub_node->name, "engine") != 0) { g_warning (" element contains invalid element <%s>", -@@ -324,9 +343,9 @@ ibus_m17n_get_component (void) +@@ -328,9 +347,9 @@ ibus_m17n_get_component (void) continue; } @@ -501,7 +501,7 @@ index 1150cc4..00b7194 100644 continue; } config_list = g_slist_prepend (config_list, cnode); -@@ -444,30 +463,3 @@ ibus_m17n_config_get_int (IBusConfig *config, +@@ -448,30 +467,3 @@ ibus_m17n_config_get_int (IBusConfig *config, return FALSE; #endif /* !IBUS_CHECK_VERSION(1,3,99) */ } diff --git a/ibus-m17n-virtkbd.patch b/ibus-m17n-virtkbd.patch index 32c9830..f26c9de 100644 --- a/ibus-m17n-virtkbd.patch +++ b/ibus-m17n-virtkbd.patch @@ -1,4 +1,4 @@ -From 03557655071092e8135a6fc5c5f8cc2b2f692a83 Mon Sep 17 00:00:00 2001 +From 1bde900422ed9ed7f06962404d5e689b297ad0b2 Mon Sep 17 00:00:00 2001 From: Daiki Ueno Date: Wed, 31 Aug 2011 18:28:48 +0900 Subject: [PATCH 5/5] Support virtual keyboard. @@ -6,18 +6,18 @@ Subject: [PATCH 5/5] Support virtual keyboard. --- configure.ac | 17 ++++ src/Makefile.am | 7 ++ - src/default.xml.in.in | 111 ++++++++++++++++++++++++ - src/engine.c | 44 ++++++++++ + src/default.xml.in.in | 111 +++++++++++++++++++++++ + src/engine.c | 40 +++++++++ src/m17nutil.c | 10 ++- src/m17nutil.h | 3 + - src/virtkbd.c | 226 +++++++++++++++++++++++++++++++++++++++++++++++++ + src/virtkbd.c | 233 +++++++++++++++++++++++++++++++++++++++++++++++++ src/virtkbd.h | 31 +++++++ - 8 files changed, 448 insertions(+), 1 deletions(-) + 8 files changed, 451 insertions(+), 1 deletions(-) create mode 100644 src/virtkbd.c create mode 100644 src/virtkbd.h diff --git a/configure.ac b/configure.ac -index 089aafb..ea1476c 100644 +index 23102c4..13e42f8 100644 --- a/configure.ac +++ b/configure.ac @@ -88,6 +88,23 @@ fi @@ -195,7 +195,7 @@ index 8192878..47053ae 100644 + diff --git a/src/engine.c b/src/engine.c -index f1e3068..cad01e5 100644 +index dcff0c7..c8378a3 100644 --- a/src/engine.c +++ b/src/engine.c @@ -7,6 +7,7 @@ @@ -228,18 +228,7 @@ index f1e3068..cad01e5 100644 MInputMethod *im; }; -@@ -110,6 +115,10 @@ ibus_m17n_init (IBusBus *bus) - if (config) - g_object_ref_sink (config); - ibus_m17n_init_common (); -+ -+#ifdef HAVE_EEKBOARD -+ eek_init (); -+#endif /* HAVE_EEKBOARD */ - } - - static gboolean -@@ -290,6 +299,8 @@ ibus_m17n_engine_class_init (IBusM17NEngineClass *klass) +@@ -290,6 +295,8 @@ ibus_m17n_engine_class_init (IBusM17NEngineClass *klass) &klass->lookup_table_orientation)) klass->lookup_table_orientation = IBUS_ORIENTATION_SYSTEM; @@ -248,7 +237,7 @@ index f1e3068..cad01e5 100644 ibus_m17n_engine_config_free (engine_config); g_signal_connect (config, "value-changed", -@@ -346,6 +357,7 @@ ibus_m17n_engine_init (IBusM17NEngine *m17n) +@@ -346,6 +353,7 @@ ibus_m17n_engine_init (IBusM17NEngine *m17n) { IBusText* label; IBusText* tooltip; @@ -256,7 +245,7 @@ index f1e3068..cad01e5 100644 m17n->prop_list = ibus_prop_list_new (); g_object_ref_sink (m17n->prop_list); -@@ -378,6 +390,22 @@ ibus_m17n_engine_init (IBusM17NEngine *m17n) +@@ -378,6 +386,22 @@ ibus_m17n_engine_init (IBusM17NEngine *m17n) ibus_prop_list_append (m17n->prop_list, m17n->setup_prop); #endif /* HAVE_SETUP */ @@ -279,7 +268,7 @@ index f1e3068..cad01e5 100644 m17n->table = ibus_lookup_table_new (9, 0, TRUE, TRUE); g_object_ref_sink (m17n->table); m17n->context = NULL; -@@ -439,6 +467,8 @@ ibus_m17n_engine_constructor (GType type, +@@ -439,6 +463,8 @@ ibus_m17n_engine_constructor (GType type, } m17n->context = minput_create_ic (klass->im, m17n); @@ -288,7 +277,7 @@ index f1e3068..cad01e5 100644 return (GObject *) m17n; } -@@ -473,6 +503,11 @@ ibus_m17n_engine_destroy (IBusM17NEngine *m17n) +@@ -473,6 +499,11 @@ ibus_m17n_engine_destroy (IBusM17NEngine *m17n) m17n->context = NULL; } @@ -300,16 +289,16 @@ index f1e3068..cad01e5 100644 IBUS_OBJECT_CLASS (parent_class)->destroy ((IBusObject *)m17n); } -@@ -709,6 +744,8 @@ ibus_m17n_engine_enable (IBusEngine *engine) - ibus_engine_get_surrounding_text (engine, &text, &cursor_pos); - g_object_unref (text); +@@ -705,6 +736,8 @@ ibus_m17n_engine_enable (IBusEngine *engine) + input context that we will use surrounding-text. */ + ibus_engine_get_surrounding_text (engine, NULL, NULL, NULL); #endif /* HAVE_IBUS_ENGINE_GET_SURROUNDING_TEXT */ + + ibus_m17n_virtual_keyboard_enable (m17n->virtkbd); } static void -@@ -718,6 +755,8 @@ ibus_m17n_engine_disable (IBusEngine *engine) +@@ -714,6 +747,8 @@ ibus_m17n_engine_disable (IBusEngine *engine) ibus_m17n_engine_focus_out (engine); parent_class->disable (engine); @@ -318,7 +307,7 @@ index f1e3068..cad01e5 100644 } static void -@@ -780,6 +819,11 @@ ibus_m17n_engine_property_activate (IBusEngine *engine, +@@ -776,6 +811,11 @@ ibus_m17n_engine_property_activate (IBusEngine *engine, } #endif /* HAVE_SETUP */ @@ -331,10 +320,10 @@ index f1e3068..cad01e5 100644 } diff --git a/src/m17nutil.c b/src/m17nutil.c -index 3e6b9f1..bf8bf84 100644 +index 94a6891..a4e4b09 100644 --- a/src/m17nutil.c +++ b/src/m17nutil.c -@@ -14,7 +14,8 @@ typedef enum { +@@ -18,7 +18,8 @@ typedef enum { ENGINE_CONFIG_LAYOUT_MASK = 1 << 1, ENGINE_CONFIG_HOTKEYS_MASK = 1 << 2, ENGINE_CONFIG_SYMBOL_MASK = 1 << 3, @@ -344,7 +333,7 @@ index 3e6b9f1..bf8bf84 100644 } EngineConfigMask; struct _EngineConfigNode { -@@ -281,6 +282,8 @@ ibus_m17n_get_engine_config (const gchar *engine_name) +@@ -285,6 +286,8 @@ ibus_m17n_get_engine_config (const gchar *engine_name) config->symbol = cnode->config.symbol; if (cnode->mask & ENGINE_CONFIG_PREEDIT_HIGHLIGHT_MASK) config->preedit_highlight = cnode->config.preedit_highlight; @@ -353,7 +342,7 @@ index 3e6b9f1..bf8bf84 100644 } } return config; -@@ -336,6 +339,11 @@ ibus_m17n_engine_config_parse_xml_node (EngineConfigNode *cnode, +@@ -340,6 +343,11 @@ ibus_m17n_engine_config_parse_xml_node (EngineConfigNode *cnode, cnode->mask |= ENGINE_CONFIG_PREEDIT_HIGHLIGHT_MASK; continue; } @@ -381,10 +370,10 @@ index 21b1bb9..f138c8b 100644 typedef struct _IBusM17NEngineConfig IBusM17NEngineConfig; diff --git a/src/virtkbd.c b/src/virtkbd.c new file mode 100644 -index 0000000..92ae3a5 +index 0000000..9baf971 --- /dev/null +++ b/src/virtkbd.c -@@ -0,0 +1,226 @@ +@@ -0,0 +1,233 @@ +/* vim:set et sts=4: */ +#ifdef HAVE_CONFIG_H +#include @@ -414,7 +403,14 @@ index 0000000..92ae3a5 + +typedef struct _IBusM17NVirtualKeyboardClass IBusM17NVirtualKeyboardClass; + -+G_DEFINE_TYPE (IBusM17NVirtualKeyboard, ibus_m17n_virtual_keyboard, G_TYPE_OBJECT); ++#ifdef HAVE_EEKBOARD ++#define _EEK_INIT() eek_init () ++#else ++#define _EEK_INIT() ++#endif /* HAVE_EEKBOARD */ ++ ++G_DEFINE_TYPE_WITH_CODE (IBusM17NVirtualKeyboard, ibus_m17n_virtual_keyboard, ++ G_TYPE_OBJECT, _EEK_INIT()); + +static void +ibus_m17n_virtual_keyboard_dispose (GObject *object) diff --git a/ibus-m17n-xkb-options.patch b/ibus-m17n-xkb-options.patch index 2dc5c13..49d29e6 100644 --- a/ibus-m17n-xkb-options.patch +++ b/ibus-m17n-xkb-options.patch @@ -1,4 +1,4 @@ -From 98be0a7b90cd47cafabb715695d20b9bfc7dd1bb Mon Sep 17 00:00:00 2001 +From 0cc2abaab50e6668e525da093ef12ed0277d5c21 Mon Sep 17 00:00:00 2001 From: Daiki Ueno Date: Mon, 8 Aug 2011 09:59:28 +0900 Subject: [PATCH 3/5] Set XKB layout option via default.xml. @@ -30,10 +30,10 @@ index dc93fd3..785ab05 100644 m17n:zh:cangjie diff --git a/src/m17nutil.c b/src/m17nutil.c -index 00b7194..06e1b58 100644 +index b06f71d..201c8b4 100644 --- a/src/m17nutil.c +++ b/src/m17nutil.c -@@ -11,7 +11,8 @@ static MConverter *utf8_converter = NULL; +@@ -15,7 +15,8 @@ static MConverter *utf8_converter = NULL; typedef enum { ENGINE_CONFIG_RANK_MASK = 1 << 0, @@ -43,7 +43,7 @@ index 00b7194..06e1b58 100644 } EngineConfigMask; struct _EngineConfigNode { -@@ -126,7 +127,7 @@ ibus_m17n_engine_new (MSymbol lang, +@@ -130,7 +131,7 @@ ibus_m17n_engine_new (MSymbol lang, "language", msymbol_name (lang), "license", "GPL", "icon", engine_icon ? engine_icon : "", @@ -52,7 +52,7 @@ index 00b7194..06e1b58 100644 "rank", config->rank, NULL); #else -@@ -268,6 +269,8 @@ ibus_m17n_get_engine_config (const gchar *engine_name) +@@ -272,6 +273,8 @@ ibus_m17n_get_engine_config (const gchar *engine_name) if (g_pattern_match_simple (cnode->name, engine_name)) { if (cnode->mask & ENGINE_CONFIG_RANK_MASK) config->rank = cnode->config.rank; @@ -61,7 +61,7 @@ index 00b7194..06e1b58 100644 if (cnode->mask & ENGINE_CONFIG_PREEDIT_HIGHLIGHT_MASK) config->preedit_highlight = cnode->config.preedit_highlight; } -@@ -300,6 +303,12 @@ ibus_m17n_engine_config_parse_xml_node (EngineConfigNode *cnode, +@@ -304,6 +307,12 @@ ibus_m17n_engine_config_parse_xml_node (EngineConfigNode *cnode, cnode->mask |= ENGINE_CONFIG_RANK_MASK; continue; } diff --git a/ibus-m17n-xx-icon-symbol.patch b/ibus-m17n-xx-icon-symbol.patch index 2948e56..31757ae 100644 --- a/ibus-m17n-xx-icon-symbol.patch +++ b/ibus-m17n-xx-icon-symbol.patch @@ -1,4 +1,4 @@ -From 7a3f7a425977c685ad64a4ec44682926ef345ea1 Mon Sep 17 00:00:00 2001 +From 4cad5fe6e36be9cbfe0d50f683b489e9202c7d53 Mon Sep 17 00:00:00 2001 From: Daiki Ueno Date: Wed, 31 Aug 2011 11:44:46 +0900 Subject: [PATCH 4/5] Supply hotkeys and symbol in engine desc. @@ -14,7 +14,7 @@ Subject: [PATCH 4/5] Supply hotkeys and symbol in engine desc. create mode 100644 m4/ibus.m4 diff --git a/configure.ac b/configure.ac -index 4df68b6..089aafb 100644 +index 927d382..23102c4 100644 --- a/configure.ac +++ b/configure.ac @@ -114,6 +114,9 @@ AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE", [Define to the read-only @@ -27,6 +27,14 @@ index 4df68b6..089aafb 100644 # OUTPUT files AC_CONFIG_FILES([ po/Makefile.in +diff --git a/m4/.gitignore b/m4/.gitignore +index 0f4126c..e28d185 100644 +--- a/m4/.gitignore ++++ b/m4/.gitignore +@@ -1 +1,3 @@ + *.m4 ++!ibus.m4 ++ diff --git a/m4/ibus.m4 b/m4/ibus.m4 new file mode 100644 index 0000000..f8f074a @@ -309,10 +317,10 @@ index 785ab05..8192878 100644 + diff --git a/src/m17nutil.c b/src/m17nutil.c -index 06e1b58..3e6b9f1 100644 +index 201c8b4..94a6891 100644 --- a/src/m17nutil.c +++ b/src/m17nutil.c -@@ -12,7 +12,9 @@ static MConverter *utf8_converter = NULL; +@@ -16,7 +16,9 @@ static MConverter *utf8_converter = NULL; typedef enum { ENGINE_CONFIG_RANK_MASK = 1 << 0, ENGINE_CONFIG_LAYOUT_MASK = 1 << 1, @@ -323,7 +331,7 @@ index 06e1b58..3e6b9f1 100644 } EngineConfigMask; struct _EngineConfigNode { -@@ -129,6 +131,8 @@ ibus_m17n_engine_new (MSymbol lang, +@@ -133,6 +135,8 @@ ibus_m17n_engine_new (MSymbol lang, "icon", engine_icon ? engine_icon : "", "layout", config->layout ? config->layout : "us", "rank", config->rank, @@ -332,7 +340,7 @@ index 06e1b58..3e6b9f1 100644 NULL); #else engine = ibus_engine_desc_new (engine_name, -@@ -271,6 +275,10 @@ ibus_m17n_get_engine_config (const gchar *engine_name) +@@ -275,6 +279,10 @@ ibus_m17n_get_engine_config (const gchar *engine_name) config->rank = cnode->config.rank; if (cnode->mask & ENGINE_CONFIG_LAYOUT_MASK) config->layout = cnode->config.layout; @@ -343,7 +351,7 @@ index 06e1b58..3e6b9f1 100644 if (cnode->mask & ENGINE_CONFIG_PREEDIT_HIGHLIGHT_MASK) config->preedit_highlight = cnode->config.preedit_highlight; } -@@ -309,6 +317,16 @@ ibus_m17n_engine_config_parse_xml_node (EngineConfigNode *cnode, +@@ -313,6 +321,16 @@ ibus_m17n_engine_config_parse_xml_node (EngineConfigNode *cnode, cnode->mask |= ENGINE_CONFIG_LAYOUT_MASK; continue; } diff --git a/ibus-m17n.spec b/ibus-m17n.spec index 6888d4b..ba40500 100644 --- a/ibus-m17n.spec +++ b/ibus-m17n.spec @@ -59,6 +59,8 @@ the input table maps from m17n-db. #patch0 -p1 -b .HEAD %patch1 -p1 -b .default-xml-override %patch2 -p1 -b .xkb-options +# do not apply patch to m4/.gitignore +sed -i 's!^[-+][-+][-+] .*/m4/\.gitignore!#\0!' %PATCH3 %patch3 -p1 -b .xx-icon-symbol %patch4 -p1 -b .virtkbd NOCONFIGURE=1 ./autogen.sh