From a692a4ee70114535a6e820786c475fff69de2498 Mon Sep 17 00:00:00 2001 From: Daiki Ueno Date: Fri, 11 May 2012 15:36:42 +0900 Subject: [PATCH] Update to 1.3.4-1. --- .gitignore | 1 + ibus-m17n-HEAD.patch | 2860 ----------------------------- ibus-m17n-hide-title-status.patch | 19 +- ibus-m17n-virtkbd.patch | 83 +- ibus-m17n.spec | 11 +- sources | 2 +- 6 files changed, 57 insertions(+), 2919 deletions(-) delete mode 100644 ibus-m17n-HEAD.patch diff --git a/.gitignore b/.gitignore index 59fba23..4ccc028 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ ibus-m17n-1.3.0.tar.gz /ibus-m17n-1.3.1.tar.gz /ibus-m17n-1.3.2.tar.gz /ibus-m17n-1.3.3.tar.gz +/ibus-m17n-1.3.4.tar.gz diff --git a/ibus-m17n-HEAD.patch b/ibus-m17n-HEAD.patch deleted file mode 100644 index a6b875b..0000000 --- a/ibus-m17n-HEAD.patch +++ /dev/null @@ -1,2860 +0,0 @@ -From 7a0deadb02ff06e7d2db1177ce1fbb0661201bf1 Mon Sep 17 00:00:00 2001 -From: Daiki Ueno -Date: Mon, 5 Sep 2011 09:41:21 +0900 -Subject: [PATCH 01/10] Update the format of default.xml to allow override. - -This patch allows value inheritance from the previous matches. -With the new format: - - - - * - 0 - FALSE - - - m17n:ja:* - 2 - TRUE - - - m17n:ja:anthy - 1 - - - -We will get preedit-highlight == TRUE and rank == 1 for m17n:ja:anthy. - -BUG=none -TEST=manual - -Review URL: http://codereview.appspot.com/4950059 ---- - src/Makefile.am | 3 +- - src/default.xml.in.in | 221 +++++++++++++++++++------------------------------ - src/engine.c | 2 + - src/m17nutil.c | 69 +++++++--------- - src/m17nutil.h | 1 + - src/test.c | 66 +++++++++++++++ - 6 files changed, 186 insertions(+), 176 deletions(-) - create mode 100644 src/test.c - -diff --git a/src/Makefile.am b/src/Makefile.am -index 282128a..e354149 100644 ---- a/src/Makefile.am -+++ b/src/Makefile.am -@@ -40,11 +40,10 @@ TESTS = \ - - - test_m17n_SOURCES = \ -- m17nutil.c \ -+ test.c \ - $(NULL) - test_m17n_CFLAGS = \ - $(AM_CFLAGS) \ -- -DDEBUG \ - $(NULL) - test_m17n_LDADD = \ - libm17ncommon.a \ -diff --git a/src/default.xml.in.in b/src/default.xml.in.in -index 5c5d67d..dc93fd3 100644 ---- a/src/default.xml.in.in -+++ b/src/default.xml.in.in -@@ -1,246 +1,197 @@ - - - -- -+ engine. A "name" element in an "engine" element allows -+ wildcard patterns. "engine" elements are evaluated in -+ first-to-last order and the latter match may override the -+ existing default. --> -+ -+ -+ m17n:* -+ 0 -+ FALSE -+ -+ -+ -+ m17n:as:* -+ 1 -+ -+ -+ m17n:bn:* -+ 1 -+ -+ -+ m17n:gu:* -+ 1 -+ -+ -+ m17n:hi:* -+ 1 -+ -+ -+ m17n:kn:* -+ 1 -+ -+ -+ m17n:ks:* -+ 1 -+ -+ -+ m17n:mai:* -+ 1 -+ -+ -+ m17n:ml:* -+ 1 -+ -+ -+ m17n:mr:* -+ 1 -+ -+ -+ m17n:ne:* -+ 1 -+ -+ -+ m17n:or:* -+ 1 -+ -+ -+ m17n:pa:* -+ 1 -+ -+ -+ m17n:sa:* -+ 1 -+ -+ -+ m17n:sd:* -+ 1 -+ -+ -+ m17n:si:* -+ 1 -+ -+ -+ m17n:ta:* -+ 1 -+ -+ -+ m17n:te:* -+ 1 -+ -+ - - m17n:as:phonetic - 2 -- FALSE - - - m17n:bn:inscript - 2 -- FALSE - - - m17n:gu:inscript - 2 -- FALSE - - - m17n:hi:inscript - 2 -- FALSE - - - m17n:kn:kgp - 2 -- FALSE - - - m17n:ks:kbd - 2 -- FALSE - - - m17n:mai:inscript - 2 -- FALSE - - - m17n:ml:inscript - 2 -- FALSE - - - m17n:mr:inscript - 2 -- FALSE - - - m17n:ne:rom - 2 -- FALSE - - - m17n:or:inscript - 2 -- FALSE - - - m17n:pa:inscript - 2 -- FALSE - - - m17n:sa:harvard-kyoto - 2 -- FALSE - - - m17n:sd:inscript - 2 -- FALSE - - - m17n:si:wijesekera - 2 -- FALSE - - - m17n:ta:tamil99 - 2 -- FALSE - - - m17n:te:inscript - 2 -- FALSE - -- -+ - - m17n:si:samanala - 0 -- FALSE -- -- -- -- m17n:ja:anthy -- 0 -- TRUE - -+ - - m17n:zh:cangjie -- 0 - TRUE - - - m17n:zh:py-b5 -- 0 - TRUE - - - m17n:zh:py-gb -- 0 - TRUE - - - m17n:zh:py -- 0 - TRUE - - - m17n:zh:quick -- 0 - TRUE - - - m17n:zh:tonepy-b5 -- 0 - TRUE - - - m17n:zh:tonepy-gb -- 0 - TRUE - - - m17n:zh:tonepy -- 0 - TRUE - - -- m17n:zh:util -- 0 -+ m17n:ja:anthy - TRUE - -- -- -- m17n:as:* -- 1 -- FALSE -- -- -- m17n:bn:* -- 1 -- FALSE -- -- -- m17n:gu:* -- 1 -- FALSE -- -- -- m17n:hi:* -- 1 -- FALSE -- -- -- m17n:kn:* -- 1 -- FALSE -- -- -- m17n:ks:* -- 1 -- FALSE -- -- -- m17n:mai:* -- 1 -- FALSE -- -- -- m17n:ml:* -- 1 -- FALSE -- -- -- m17n:mr:* -- 1 -- FALSE -- -- -- m17n:ne:* -- 1 -- FALSE -- -- -- m17n:or:* -- 1 -- FALSE -- -- -- m17n:pa:* -- 1 -- FALSE -- -- -- m17n:sa:* -- 1 -- FALSE -- -- -- m17n:sd:* -- 1 -- FALSE -- -- -- m17n:si:* -- 1 -- FALSE -- -- -- m17n:ta:* -- 1 -- FALSE -- -- -- m17n:te:* -- 1 -- FALSE -- -- -- -- m17n:* -- 0 -- FALSE -- - -diff --git a/src/engine.c b/src/engine.c -index cfb853c..dcff0c7 100644 ---- a/src/engine.c -+++ b/src/engine.c -@@ -290,6 +290,8 @@ ibus_m17n_engine_class_init (IBusM17NEngineClass *klass) - &klass->lookup_table_orientation)) - klass->lookup_table_orientation = IBUS_ORIENTATION_SYSTEM; - -+ ibus_m17n_engine_config_free (engine_config); -+ - g_signal_connect (config, "value-changed", - G_CALLBACK(ibus_m17n_config_value_changed), - klass); -diff --git a/src/m17nutil.c b/src/m17nutil.c -index 42aa8f6..54561f2 100644 ---- a/src/m17nutil.c -+++ b/src/m17nutil.c -@@ -13,12 +13,17 @@ static MConverter *utf8_converter = NULL; - - #define DEFAULT_XML (SETUPDIR "/default.xml") - --struct _IBusM17NEngineConfigNode { -+typedef enum { -+ ENGINE_CONFIG_RANK_MASK = 1 << 0, -+ ENGINE_CONFIG_PREEDIT_HIGHLIGHT_MASK = 1 << 1 -+} EngineConfigMask; -+ -+struct _EngineConfigNode { - gchar *name; -+ EngineConfigMask mask; - IBusM17NEngineConfig config; - }; -- --typedef struct _IBusM17NEngineConfigNode IBusM17NEngineConfigNode; -+typedef struct _EngineConfigNode EngineConfigNode; - - static GSList *config_list = NULL; - -@@ -257,20 +262,31 @@ ibus_m17n_list_engines (void) - IBusM17NEngineConfig * - ibus_m17n_get_engine_config (const gchar *engine_name) - { -+ IBusM17NEngineConfig *config = g_slice_new0 (IBusM17NEngineConfig); - GSList *p; - - for (p = config_list; p != NULL; p = p->next) { -- IBusM17NEngineConfigNode *cnode = p->data; -+ EngineConfigNode *cnode = p->data; - -- if (g_pattern_match_simple (cnode->name, engine_name)) -- return &cnode->config; -+ if (g_pattern_match_simple (cnode->name, engine_name)) { -+ if (cnode->mask & ENGINE_CONFIG_RANK_MASK) -+ config->rank = cnode->config.rank; -+ if (cnode->mask & ENGINE_CONFIG_PREEDIT_HIGHLIGHT_MASK) -+ config->preedit_highlight = cnode->config.preedit_highlight; -+ } - } -- g_return_val_if_reached (NULL); -+ return config; -+} -+ -+void -+ibus_m17n_engine_config_free (IBusM17NEngineConfig *config) -+{ -+ g_slice_free (IBusM17NEngineConfig, config); - } - - static gboolean --ibus_m17n_engine_config_parse_xml_node (IBusM17NEngineConfigNode *cnode, -- XMLNode *node) -+ibus_m17n_engine_config_parse_xml_node (EngineConfigNode *cnode, -+ XMLNode *node) - { - GList *p; - -@@ -284,6 +300,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); -+ cnode->mask |= ENGINE_CONFIG_RANK_MASK; - continue; - } - if (g_strcmp0 (sub_node->name , "preedit-highlight") == 0) { -@@ -292,6 +309,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); -+ cnode->mask |= ENGINE_CONFIG_PREEDIT_HIGHLIGHT_MASK; - continue; - } - g_warning (" element contains invalid element <%s>", -@@ -320,7 +338,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; -- IBusM17NEngineConfigNode *cnode; -+ EngineConfigNode *cnode; - - if (g_strcmp0 (sub_node->name, "engine") != 0) { - g_warning (" element contains invalid element <%s>", -@@ -328,9 +346,9 @@ ibus_m17n_get_component (void) - continue; - } - -- cnode = g_slice_new0 (IBusM17NEngineConfigNode); -+ cnode = g_slice_new0 (EngineConfigNode); - if (!ibus_m17n_engine_config_parse_xml_node (cnode, sub_node)) { -- g_slice_free (IBusM17NEngineConfigNode, cnode); -+ g_slice_free (EngineConfigNode, cnode); - continue; - } - config_list = g_slist_prepend (config_list, cnode); -@@ -448,30 +466,3 @@ ibus_m17n_config_get_int (IBusConfig *config, - return FALSE; - #endif /* !IBUS_CHECK_VERSION(1,3,99) */ - } -- --#ifdef DEBUG --#include -- --int main () --{ -- IBusComponent *component; -- GString *output; -- -- setlocale (LC_ALL, ""); -- ibus_init (); -- ibus_m17n_init_common (); -- -- component = ibus_m17n_get_component (); -- -- output = g_string_new (""); -- -- ibus_component_output (component, output, 1); -- -- g_debug ("\n%s", output->str); -- -- g_string_free (output, TRUE); -- g_object_unref (component); -- -- return 0; --} --#endif -diff --git a/src/m17nutil.h b/src/m17nutil.h -index f083194..313e7bc 100644 ---- a/src/m17nutil.h -+++ b/src/m17nutil.h -@@ -30,6 +30,7 @@ gunichar *ibus_m17n_mtext_to_ucs4 (MText *text, - guint ibus_m17n_parse_color (const gchar *hex); - IBusM17NEngineConfig - *ibus_m17n_get_engine_config (const gchar *engine_name); -+void ibus_m17n_engine_config_free (IBusM17NEngineConfig *config); - void ibus_m17n_config_set_string (IBusConfig *config, - const gchar *section, - const gchar *name, -diff --git a/src/test.c b/src/test.c -new file mode 100644 -index 0000000..0908818 ---- /dev/null -+++ b/src/test.c -@@ -0,0 +1,66 @@ -+/* vim:set et sts=4: */ -+#ifdef HAVE_CONFIG_H -+#include -+#endif -+ -+#include -+#include -+#include "m17nutil.h" -+ -+static void -+test_output_component (void) -+{ -+ IBusComponent *component; -+ GString *output; -+ -+ component = ibus_m17n_get_component (); -+ -+ output = g_string_new (""); -+ -+ ibus_component_output (component, output, 1); -+ -+ g_debug ("\n%s", output->str); -+ -+ g_string_free (output, TRUE); -+ g_object_unref (component); -+} -+ -+static void -+test_engine_config (void) -+{ -+ IBusM17NEngineConfig *config; -+ -+ config = ibus_m17n_get_engine_config ("m17n:non:exsistent"); -+ g_assert_cmpint (config->rank, ==, 0); -+ g_assert_cmpint (config->preedit_highlight, ==, 0); -+ ibus_m17n_engine_config_free (config); -+ -+ config = ibus_m17n_get_engine_config ("m17n:si:wijesekera"); -+ g_assert_cmpint (config->rank, ==, 2); -+ g_assert_cmpint (config->preedit_highlight, ==, 0); -+ ibus_m17n_engine_config_free (config); -+ -+ config = ibus_m17n_get_engine_config ("m17n:si:phonetic-dynamic"); -+ g_assert_cmpint (config->rank, ==, 1); -+ g_assert_cmpint (config->preedit_highlight, ==, 0); -+ ibus_m17n_engine_config_free (config); -+ -+ config = ibus_m17n_get_engine_config ("m17n:si:samanala"); -+ g_assert_cmpint (config->rank, ==, 0); -+ g_assert_cmpint (config->preedit_highlight, ==, 0); -+ ibus_m17n_engine_config_free (config); -+} -+ -+int main (int argc, char **argv) -+{ -+ setlocale (LC_ALL, ""); -+ ibus_init (); -+ ibus_m17n_init_common (); -+ -+ g_test_init (&argc, &argv, NULL); -+ -+ g_test_add_func ("/test-m17n/output-component", test_output_component); -+ g_test_add_func ("/test-m17n/engine-config", test_engine_config); -+ -+ return g_test_run (); -+} --- -1.7.7.6 - - -From 5ff68ed781584d59f7f27e843f2f6da630c904ae Mon Sep 17 00:00:00 2001 -From: Daiki Ueno -Date: Thu, 8 Sep 2011 09:51:02 +0900 -Subject: [PATCH 02/10] Refactor setup.c. - -Previously, each config item was saved when corresponding widget state was -changed. With this change, changes won't be saved until a user close the -setup dialog. - -BUG=none -TEST=manual - -Review URL: http://codereview.appspot.com/4968066 ---- - src/ibus-m17n-preferences.ui | 3 +- - src/setup.c | 668 +++++++++++++++++++++++------------------- - 2 files changed, 363 insertions(+), 308 deletions(-) - -diff --git a/src/ibus-m17n-preferences.ui b/src/ibus-m17n-preferences.ui -index 6f6ace7..a46ab49 100644 ---- a/src/ibus-m17n-preferences.ui -+++ b/src/ibus-m17n-preferences.ui -@@ -263,9 +263,10 @@ - automatic - automatic - -- -+ - True - True -+ True - both - - -diff --git a/src/setup.c b/src/setup.c -index aba0e92..02db691 100644 ---- a/src/setup.c -+++ b/src/setup.c -@@ -17,19 +17,24 @@ enum { - NUM_COLS - }; - --struct _ConfigContext { -- IBusConfig *config; -- MSymbol language; -- MSymbol name; -- GtkListStore *store; -- gchar *section; -+struct _SetupDialog { -+ GtkWidget *dialog; -+ GtkWidget *combobox_underline; -+ GtkWidget *combobox_orientation; -+ GtkWidget *checkbutton_foreground; - GtkWidget *colorbutton_foreground; -+ GtkWidget *checkbutton_background; - GtkWidget *colorbutton_background; -+ GtkWidget *treeview; -+ GtkListStore *store; - --}; --typedef struct _ConfigContext ConfigContext; -+ MSymbol lang; -+ MSymbol name; - --static IBusConfig *config = NULL; -+ IBusConfig *config; -+ gchar *section; -+}; -+typedef struct _SetupDialog SetupDialog; - - static gchar *opt_name = NULL; - static const GOptionEntry options[] = { -@@ -38,17 +43,8 @@ static const GOptionEntry options[] = { - {NULL} - }; - --void --ibus_m17n_init (IBusBus *bus) --{ -- config = ibus_bus_get_config (bus); -- if (config) -- g_object_ref_sink (config); -- ibus_m17n_init_common (); --} -- - static gchar * --format_value (MPlist *plist) -+format_m17n_value (MPlist *plist) - { - if (mplist_key (plist) == Msymbol) - return g_strdup (msymbol_name ((MSymbol) mplist_value (plist))); -@@ -64,7 +60,7 @@ format_value (MPlist *plist) - } - - static MPlist * --parse_value (MPlist *plist, gchar *text) -+parse_m17n_value (MPlist *plist, gchar *text) - { - MPlist *value; - -@@ -100,7 +96,7 @@ parse_value (MPlist *plist, gchar *text) - } - - static void --insert_items (GtkListStore *store, MSymbol language, MSymbol name) -+insert_m17n_items (GtkListStore *store, MSymbol language, MSymbol name) - { - MPlist *plist; - -@@ -109,8 +105,8 @@ insert_items (GtkListStore *store, MSymbol language, MSymbol name) - for (; plist && mplist_key (plist) == Mplist; plist = mplist_next (plist)) { - GtkTreeIter iter; - MSymbol key; -- MPlist *p, *value; -- gchar *description; -+ MPlist *p, *mvalue; -+ gchar *description, *value; - - p = mplist_value (plist); - key = mplist_value (p); /* name */ -@@ -118,15 +114,17 @@ insert_items (GtkListStore *store, MSymbol language, MSymbol name) - p = mplist_next (p); /* description */ - description = ibus_m17n_mtext_to_utf8 ((MText *) mplist_value (p)); - p = mplist_next (p); /* status */ -- value = mplist_next (p); -+ mvalue = mplist_next (p); -+ value = format_m17n_value (mvalue); - - gtk_list_store_append (store, &iter); - gtk_list_store_set (store, &iter, - COLUMN_KEY, msymbol_name (key), - COLUMN_DESCRIPTION, description, -- COLUMN_VALUE, format_value (value), -+ COLUMN_VALUE, value, - -1); - g_free (description); -+ g_free (value); - } - } - -@@ -138,7 +136,7 @@ on_query_tooltip (GtkWidget *widget, - GtkTooltip *tooltip, - gpointer user_data) - { -- GtkTreeView *treeview = GTK_TREE_VIEW(widget); -+ GtkTreeView *treeview = GTK_TREE_VIEW (widget); - GtkTreeModel *model = gtk_tree_view_get_model (treeview); - GtkTreePath *path = NULL; - GtkTreeIter iter; -@@ -163,173 +161,48 @@ on_edited (GtkCellRendererText *cell, - gchar *new_text, - gpointer data) - { -- ConfigContext *context = data; -- GtkTreeModel *model = GTK_TREE_MODEL (context->store); -+ SetupDialog *dialog = data; -+ GtkTreeModel *model = GTK_TREE_MODEL (dialog->store); - GtkTreeIter iter; - GtkTreePath *path = gtk_tree_path_new_from_string (path_string); -- MPlist *plist, *p, *value; -- gchar *key; - - gtk_tree_model_get_iter (model, &iter, path); -- gtk_tree_model_get (model, &iter, COLUMN_KEY, &key, -1); -- -- plist = minput_get_variable (context->language, context->name, -- msymbol (key)); -- if (!plist) -- goto fail; -- -- p = mplist_next (mplist_next (mplist_next (mplist_value (plist)))); -- if (!p) -- goto fail; -- -- value = parse_value (p, new_text); -- if (!value) -- goto fail; -- -- if (minput_config_variable (context->language, context->name, -- msymbol (key), value) != 0) -- goto fail; - -- if (minput_save_config () != 1) -- goto fail; -- -- gtk_list_store_set (context->store, &iter, -+ gtk_list_store_set (dialog->store, &iter, - COLUMN_VALUE, new_text, - -1); -- -- fail: - gtk_tree_path_free (path); - } - - static void --color_to_gdk (guint color, GdkColor *color_gdk) -+toggle_colorbutton_sensitive (GtkToggleButton *togglebutton, -+ GtkWidget *colorbutton) - { -- memset (color_gdk, 0, sizeof *color_gdk); -- color_gdk->red = (color >> 8) & 0xFF00; -- color_gdk->green = color & 0xFF00; -- color_gdk->blue = (color & 0xFF) << 8; --} -- --static void --set_color (ConfigContext *context, const gchar *name, GdkColor *color) --{ -- gchar buf[8]; -- -- if (color) -- sprintf (buf, "#%02X%02X%02X", -- (color->red & 0xFF00) >> 8, -- (color->green & 0xFF00) >> 8, -- (color->blue & 0xFF00) >> 8); -- else -- strcpy (buf, "none"); -- ibus_m17n_config_set_string (config, context->section, name, buf); --} -- --static void --on_foreground_color_set (GtkColorButton *widget, -- gpointer user_data) --{ -- ConfigContext *context = user_data; -- GdkColor color; -- -- gtk_color_button_get_color (GTK_COLOR_BUTTON(widget), &color); -- set_color (context, "preedit_foreground", &color); --} -- --static void --on_background_color_set (GtkColorButton *widget, -- gpointer user_data) --{ -- ConfigContext *context = user_data; -- GdkColor color; -- -- gtk_color_button_get_color (GTK_COLOR_BUTTON(widget), &color); -- set_color (context, "preedit_background", &color); --} -- --static void --on_underline_changed (GtkComboBox *combo, -- gpointer user_data) --{ -- ConfigContext *context = user_data; -- GtkTreeModel *model; -- GtkTreeIter iter; -- gint active; -- -- model = gtk_combo_box_get_model (combo); -- gtk_combo_box_get_active_iter (combo, &iter); -- gtk_tree_model_get (model, &iter, COLUMN_VALUE, &active, -1); -- -- ibus_m17n_config_set_int (config, -- context->section, -- "preedit_underline", -- active); --} -- --static void --on_orientation_changed (GtkComboBox *combo, -- gpointer user_data) --{ -- ConfigContext *context = user_data; -- GtkTreeModel *model; -- GtkTreeIter iter; -- gint active; -- -- model = gtk_combo_box_get_model (combo); -- gtk_combo_box_get_active_iter (combo, &iter); -- gtk_tree_model_get (model, &iter, COLUMN_VALUE, &active, -1); -- -- ibus_m17n_config_set_int (config, -- context->section, -- "lookup_table_orientation", -- active); --} -- --static void --toggle_color (ConfigContext *context, -- GtkToggleButton *togglebutton, -- GtkWidget *colorbutton, -- const gchar *name) --{ -- GdkColor color; -- -- if (gtk_toggle_button_get_active (togglebutton)) { -+ if (gtk_toggle_button_get_active (togglebutton)) - gtk_widget_set_sensitive (colorbutton, TRUE); -- gtk_color_button_get_color (GTK_COLOR_BUTTON(colorbutton), &color); -- set_color (context, name, &color); -- } else { -+ else - gtk_widget_set_sensitive (colorbutton, FALSE); -- gtk_color_button_get_color (GTK_COLOR_BUTTON(colorbutton), &color); -- set_color (context, name, NULL); -- } - } - - static void - on_foreground_toggled (GtkToggleButton *togglebutton, - gpointer user_data) - { -- ConfigContext *context = user_data; -- -- toggle_color (context, -- togglebutton, -- context->colorbutton_foreground, -- "preedit_foreground"); -+ SetupDialog *dialog = user_data; -+ toggle_colorbutton_sensitive (togglebutton, dialog->colorbutton_foreground); - } - - static void - on_background_toggled (GtkToggleButton *togglebutton, - gpointer user_data) - { -- ConfigContext *context = user_data; -- -- toggle_color (context, -- togglebutton, -- context->colorbutton_background, -- "preedit_background"); -+ SetupDialog *dialog = user_data; -+ toggle_colorbutton_sensitive (togglebutton, dialog->colorbutton_background); - } - - static gint --get_combo_box_index_by_value (GtkComboBox *combobox, gint value) -+get_combo_box_index_by_value (GtkComboBox *combobox, -+ gint value) - { - GtkTreeModel *model; - GtkTreeIter iter; -@@ -351,185 +224,366 @@ get_combo_box_index_by_value (GtkComboBox *combobox, gint value) - } - - static void --start (const gchar *engine_name) -+_gdk_color_from_uint (guint color, -+ GdkColor *color_gdk) -+{ -+ color_gdk->pixel = 0; -+ color_gdk->red = (color >> 8) & 0xFF00; -+ color_gdk->green = color & 0xFF00; -+ color_gdk->blue = (color & 0xFF) << 8; -+} -+ -+static void -+setup_dialog_load_config (SetupDialog *dialog) - { -- IBusBus *bus; -- gchar **strv, *lang, *name; -- GtkBuilder *builder; -- GtkWidget *dialog; -- GtkWidget *combobox_underline, *combobox_orientation; -- GtkWidget *checkbutton_foreground, *checkbutton_background; -- GtkWidget *treeview; -- GtkListStore *store; -- GObject *object; -- GError *error = NULL; -- GtkCellRenderer *renderer; -- ConfigContext context; - gchar *color; -- gboolean is_foreground_set, is_background_set; -- GdkColor foreground, background; -- gint underline; -- gint orientation; -+ gboolean bvalue; -+ gint ivalue; -+ GdkColor cvalue; -+ GtkCellRenderer *renderer; - gint index; - -- ibus_init (); -- -- bus = ibus_bus_new (); -- //g_signal_connect (bus, "disconnected", G_CALLBACK (ibus_disconnected_cb), NULL); -- ibus_m17n_init (bus); -- -- strv = g_strsplit (engine_name, ":", 3); -- -- g_assert (g_strv_length (strv) == 3); -- g_assert (g_strcmp0 (strv[0], "m17n") == 0); -- -- lang = strv[1]; -- name = strv[2]; -- -- config = ibus_bus_get_config (bus); -- context.section = g_strdup_printf ("engine/M17N/%s/%s", lang, name); -- -- builder = gtk_builder_new (); -- gtk_builder_set_translation_domain (builder, "ibus-m17n"); -- gtk_builder_add_from_file (builder, -- SETUPDIR "/ibus-m17n-preferences.ui", -- &error); -- object = gtk_builder_get_object (builder, "dialog"); -- dialog = GTK_WIDGET(object); -- object = gtk_builder_get_object (builder, "checkbutton_foreground"); -- checkbutton_foreground = GTK_WIDGET(object); -- object = gtk_builder_get_object (builder, "colorbutton_foreground"); -- context.colorbutton_foreground = GTK_WIDGET(object); -- object = gtk_builder_get_object (builder, "checkbutton_background"); -- checkbutton_background = GTK_WIDGET(object); -- object = gtk_builder_get_object (builder, "colorbutton_background"); -- context.colorbutton_background = GTK_WIDGET(object); -- object = gtk_builder_get_object (builder, "combobox_underline"); -- combobox_underline = GTK_WIDGET(object); -- object = gtk_builder_get_object (builder, "combobox_orientation"); -- combobox_orientation = GTK_WIDGET(object); -- object = gtk_builder_get_object (builder, "treeviewMimConfig"); -- treeview = GTK_WIDGET(object); -- - /* General -> Pre-edit Appearance */ - /* foreground color of pre-edit buffer */ -- is_foreground_set = FALSE; -- color_to_gdk (PREEDIT_FOREGROUND, &foreground); -- if (ibus_m17n_config_get_string (config, -- context.section, -+ bvalue = FALSE; -+ _gdk_color_from_uint (PREEDIT_FOREGROUND, &cvalue); -+ if (ibus_m17n_config_get_string (dialog->config, -+ dialog->section, - "preedit_foreground", - &color)) { -- if (g_strcmp0 (color, "none") != 0 && -- gdk_color_parse (color, &foreground)) -- is_foreground_set = TRUE; -+ if (g_strcmp0 (color, "none") != 0 && gdk_color_parse (color, &cvalue)) -+ bvalue = TRUE; - g_free (color); - } - -- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(checkbutton_foreground), -- is_foreground_set); -- g_signal_connect (checkbutton_foreground, "toggled", -- G_CALLBACK(on_foreground_toggled), -- &context); -- gtk_widget_set_sensitive (context.colorbutton_foreground, -- is_foreground_set); -+ gtk_toggle_button_set_active -+ (GTK_TOGGLE_BUTTON (dialog->checkbutton_foreground), -+ bvalue); -+ g_signal_connect (dialog->checkbutton_foreground, "toggled", -+ G_CALLBACK (on_foreground_toggled), dialog); -+ gtk_widget_set_sensitive (dialog->colorbutton_foreground, bvalue); - gtk_color_button_set_color -- (GTK_COLOR_BUTTON(context.colorbutton_foreground), -- &foreground); -- g_signal_connect (context.colorbutton_foreground, "color-set", -- G_CALLBACK(on_foreground_color_set), &context); -+ (GTK_COLOR_BUTTON (dialog->colorbutton_foreground), -+ &cvalue); - -- - /* background color of pre-edit buffer */ -- is_background_set = FALSE; -- color_to_gdk (PREEDIT_BACKGROUND, &background); -- if (ibus_m17n_config_get_string (config, -- context.section, -+ bvalue = FALSE; -+ _gdk_color_from_uint (PREEDIT_BACKGROUND, &cvalue); -+ if (ibus_m17n_config_get_string (dialog->config, -+ dialog->section, - "preedit_background", - &color)) { -- if (g_strcmp0 (color, "none") != 0 && -- gdk_color_parse (color, &background)) -- is_background_set = TRUE; -- g_debug ("preedit_background %d", is_background_set); -+ if (g_strcmp0 (color, "none") != 0 && gdk_color_parse (color, &cvalue)) -+ bvalue = TRUE; - g_free (color); - } -- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(checkbutton_background), -- is_background_set); -- g_signal_connect (checkbutton_background, "toggled", -- G_CALLBACK(on_background_toggled), -- &context); -- gtk_widget_set_sensitive (context.colorbutton_background, -- is_background_set); -+ gtk_toggle_button_set_active -+ (GTK_TOGGLE_BUTTON (dialog->checkbutton_background), -+ bvalue); -+ g_signal_connect (dialog->checkbutton_background, "toggled", -+ G_CALLBACK (on_background_toggled), dialog); -+ gtk_widget_set_sensitive (dialog->colorbutton_background, bvalue); - gtk_color_button_set_color -- (GTK_COLOR_BUTTON(context.colorbutton_background), -- &background); -- g_signal_connect (context.colorbutton_background, "color-set", -- G_CALLBACK(on_background_color_set), &context); -+ (GTK_COLOR_BUTTON (dialog->colorbutton_background), -+ &cvalue); - - /* underline of pre-edit buffer */ - renderer = gtk_cell_renderer_text_new (); -- gtk_cell_layout_pack_start (GTK_CELL_LAYOUT(combobox_underline), -+ gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (dialog->combobox_underline), - renderer, TRUE); -- gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT(combobox_underline), -- renderer, "text", 0, NULL); -- if (!ibus_m17n_config_get_int (config, -- context.section, -+ gtk_cell_layout_set_attributes -+ (GTK_CELL_LAYOUT (dialog->combobox_underline), -+ renderer, "text", 0, NULL); -+ if (!ibus_m17n_config_get_int (dialog->config, -+ dialog->section, - "preedit_underline", -- &underline)) -- underline = IBUS_ATTR_UNDERLINE_NONE; -+ &ivalue)) -+ ivalue = IBUS_ATTR_UNDERLINE_NONE; - -- index = get_combo_box_index_by_value (GTK_COMBO_BOX(combobox_underline), -- underline); -- gtk_combo_box_set_active (GTK_COMBO_BOX(combobox_underline), index); -- g_signal_connect (combobox_underline, "changed", -- G_CALLBACK(on_underline_changed), &context); -+ index = get_combo_box_index_by_value -+ (GTK_COMBO_BOX (dialog->combobox_underline), -+ ivalue); -+ gtk_combo_box_set_active (GTK_COMBO_BOX (dialog->combobox_underline), -+ index); - - /* General -> Other */ -+ /* lookup table orientation */ - renderer = gtk_cell_renderer_text_new (); -- gtk_cell_layout_pack_start (GTK_CELL_LAYOUT(combobox_orientation), -+ gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (dialog->combobox_orientation), - renderer, TRUE); -- gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT(combobox_orientation), -- renderer, "text", 0, NULL); -- if (!ibus_m17n_config_get_int (config, -- context.section, -+ gtk_cell_layout_set_attributes -+ (GTK_CELL_LAYOUT (dialog->combobox_orientation), -+ renderer, "text", 0, NULL); -+ if (!ibus_m17n_config_get_int (dialog->config, -+ dialog->section, - "lookup_table_orientation", -- &orientation)) -- orientation = IBUS_ORIENTATION_SYSTEM; -+ &ivalue)) -+ ivalue = IBUS_ORIENTATION_SYSTEM; - -- index = get_combo_box_index_by_value (GTK_COMBO_BOX(combobox_orientation), -- orientation); -- gtk_combo_box_set_active (GTK_COMBO_BOX(combobox_orientation), index); -- g_signal_connect (combobox_orientation, "changed", -- G_CALLBACK(on_orientation_changed), &context); -+ index = get_combo_box_index_by_value -+ (GTK_COMBO_BOX (dialog->combobox_orientation), -+ ivalue); -+ gtk_combo_box_set_active (GTK_COMBO_BOX (dialog->combobox_orientation), -+ index); - - /* Advanced -> m17n-lib configuration */ -- store = gtk_list_store_new (NUM_COLS, -- G_TYPE_STRING, -- G_TYPE_STRING, -- G_TYPE_STRING); -- insert_items (store, msymbol (lang), msymbol (name)); -- -- gtk_tree_view_set_model (GTK_TREE_VIEW(treeview), GTK_TREE_MODEL (store)); -- gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (treeview), -1, -- "Key", -- gtk_cell_renderer_text_new (), -- "text", COLUMN_KEY, NULL); -- g_object_set (treeview, "has-tooltip", TRUE, NULL); -- g_signal_connect (treeview, "query-tooltip", G_CALLBACK(on_query_tooltip), -- NULL); -- -- context.language = msymbol (lang); -- context.name = msymbol (name); -- context.store = store; -+ dialog->store = gtk_list_store_new (NUM_COLS, -+ G_TYPE_STRING, -+ G_TYPE_STRING, -+ G_TYPE_STRING); -+ insert_m17n_items (dialog->store, dialog->lang, dialog->name); -+ -+ gtk_tree_view_set_model (GTK_TREE_VIEW (dialog->treeview), -+ GTK_TREE_MODEL (dialog->store)); -+ -+ renderer = gtk_cell_renderer_text_new (); -+ gtk_tree_view_insert_column_with_attributes -+ (GTK_TREE_VIEW (dialog->treeview), -1, -+ "Key", -+ renderer, -+ "text", COLUMN_KEY, -+ NULL); - renderer = gtk_cell_renderer_text_new (); -- gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (treeview), -1, -- "Value", -- renderer, -- "text", COLUMN_VALUE, NULL); -+ gtk_tree_view_insert_column_with_attributes -+ (GTK_TREE_VIEW (dialog->treeview), -1, -+ "Value", -+ renderer, -+ "text", COLUMN_VALUE, -+ NULL); - g_object_set (renderer, "editable", TRUE, NULL); -- g_signal_connect (renderer, "edited", G_CALLBACK(on_edited), &context); -+ g_signal_connect (renderer, "edited", G_CALLBACK (on_edited), dialog); -+ -+ g_signal_connect (dialog->treeview, "query-tooltip", -+ G_CALLBACK (on_query_tooltip), NULL); -+} -+ -+static gchar * -+_gdk_color_to_string (GdkColor *color) -+{ -+ g_strdup_printf ("#%02X%02X%02X", -+ (color->red & 0xFF00) >> 8, -+ (color->green & 0xFF00) >> 8, -+ (color->blue & 0xFF00) >> 8); -+} -+ -+static void -+save_color (SetupDialog *dialog, -+ GtkToggleButton *togglebutton, -+ GtkColorButton *colorbutton, -+ const gchar *name) -+{ -+ if (gtk_toggle_button_get_active (togglebutton)) { -+ GdkColor color; -+ gchar *svalue; -+ -+ gtk_color_button_get_color (colorbutton, &color); -+ svalue = _gdk_color_to_string (&color); -+ ibus_m17n_config_set_string (dialog->config, -+ dialog->section, -+ name, -+ svalue); -+ g_free (svalue); -+ } else { -+ ibus_m17n_config_set_string (dialog->config, -+ dialog->section, -+ name, -+ "none"); -+ } -+} -+ -+static void -+save_choice (SetupDialog *dialog, -+ GtkComboBox *combo, -+ const gchar *name) -+{ -+ GtkTreeModel *model; -+ GtkTreeIter iter; -+ gint active; -+ -+ model = gtk_combo_box_get_model (combo); -+ gtk_combo_box_get_active_iter (combo, &iter); -+ gtk_tree_model_get (model, &iter, COLUMN_VALUE, &active, -1); -+ -+ ibus_m17n_config_set_int (dialog->config, dialog->section, name, active); -+} -+ -+static gboolean -+save_m17n_options (SetupDialog *dialog) -+{ -+ GtkTreeModel *model = GTK_TREE_MODEL (dialog->store); -+ GtkTreeIter iter; -+ MPlist *plist, *p, *mvalue = NULL; -+ gchar *key = NULL, *value = NULL; -+ gboolean retval = TRUE; -+ -+ if (!gtk_tree_model_get_iter_first (model, &iter)) -+ return; -+ -+ do { -+ gtk_tree_model_get (model, &iter, -+ COLUMN_KEY, &key, -+ COLUMN_VALUE, &value, -+ -1); -+ -+ plist = minput_get_variable (dialog->lang, dialog->name, msymbol (key)); -+ if (!plist) { -+ retval = FALSE; -+ break; -+ } -+ -+ p = mplist_next (mplist_next (mplist_next (mplist_value (plist)))); -+ if (!p) { -+ retval = FALSE; -+ break; -+ } -+ -+ mvalue = parse_m17n_value (p, value); -+ if (!mvalue) { -+ retval = FALSE; -+ break; -+ } -+ -+ if (minput_config_variable (dialog->lang, -+ dialog->name, -+ msymbol (key), -+ mvalue) != 0) { -+ retval = FALSE; -+ break; -+ } -+ -+ if (mvalue) -+ m17n_object_unref (mvalue); -+ g_free (key); -+ g_free (value); -+ mvalue = NULL; -+ key = NULL; -+ value = NULL; -+ } while (gtk_tree_model_iter_next (model, &iter)); -+ -+ if (retval && minput_save_config () != 1) -+ retval = FALSE; -+ -+ if (mvalue) -+ m17n_object_unref (mvalue); -+ g_free (key); -+ g_free (value); -+ -+ return retval; -+} -+ -+static void -+setup_dialog_save_config (SetupDialog *dialog) -+{ -+ save_color (dialog, -+ GTK_TOGGLE_BUTTON (dialog->checkbutton_foreground), -+ GTK_COLOR_BUTTON (dialog->colorbutton_foreground), -+ "preedit_foreground"); -+ save_color (dialog, -+ GTK_TOGGLE_BUTTON (dialog->checkbutton_background), -+ GTK_COLOR_BUTTON (dialog->colorbutton_background), -+ "preedit_background"); -+ save_choice (dialog, -+ GTK_COMBO_BOX (dialog->combobox_underline), -+ "preedit_underline"); -+ save_choice (dialog, -+ GTK_COMBO_BOX (dialog->combobox_orientation), -+ "lookup_table_orientation"); -+ save_m17n_options (dialog); -+} -+ -+static SetupDialog * -+setup_dialog_new (IBusConfig *config, -+ MSymbol lang, -+ MSymbol name) -+{ -+ GtkBuilder *builder; -+ SetupDialog *dialog; -+ GObject *object; -+ GError *error; -+ -+ dialog = g_slice_new0 (SetupDialog); -+ dialog->config = config; -+ dialog->lang = lang; -+ dialog->name = name; -+ dialog->section = g_strdup_printf ("engine/M17N/%s/%s", -+ msymbol_name (lang), -+ msymbol_name (name)); -+ -+ builder = gtk_builder_new (); -+ gtk_builder_set_translation_domain (builder, "ibus-m17n"); -+ -+ error = NULL; -+ if (gtk_builder_add_from_file (builder, -+ SETUPDIR "/ibus-m17n-preferences.ui", -+ &error) == 0) { -+ g_error_free (error); -+ g_return_val_if_reached (NULL); -+ } -+ -+ object = gtk_builder_get_object (builder, "dialog"); -+ dialog->dialog = GTK_WIDGET (object); -+ object = gtk_builder_get_object (builder, "checkbutton_foreground"); -+ dialog->checkbutton_foreground = GTK_WIDGET (object); -+ object = gtk_builder_get_object (builder, "colorbutton_foreground"); -+ dialog->colorbutton_foreground = GTK_WIDGET (object); -+ object = gtk_builder_get_object (builder, "checkbutton_background"); -+ dialog->checkbutton_background = GTK_WIDGET (object); -+ object = gtk_builder_get_object (builder, "colorbutton_background"); -+ dialog->colorbutton_background = GTK_WIDGET (object); -+ object = gtk_builder_get_object (builder, "combobox_underline"); -+ dialog->combobox_underline = GTK_WIDGET (object); -+ object = gtk_builder_get_object (builder, "combobox_orientation"); -+ dialog->combobox_orientation = GTK_WIDGET (object); -+ object = gtk_builder_get_object (builder, "treeview_mim_config"); -+ dialog->treeview = GTK_WIDGET (object); -+ -+ return dialog; -+} -+ -+static void -+setup_dialog_free (SetupDialog *dialog) -+{ -+ gtk_widget_destroy (dialog->dialog); -+ g_free (dialog->section); -+ g_object_unref (dialog->store); -+ g_slice_free (SetupDialog, dialog); -+} -+ -+static void -+start (const gchar *engine_name) -+{ -+ IBusBus *bus; -+ IBusConfig *config; -+ gchar **strv, *section; -+ SetupDialog *dialog; -+ GObject *object; -+ -+ ibus_init (); -+ ibus_m17n_init_common (); -+ -+ strv = g_strsplit (engine_name, ":", 3); -+ g_assert (g_strv_length (strv) == 3); -+ g_assert (g_strcmp0 (strv[0], "m17n") == 0); -+ -+ bus = ibus_bus_new (); -+ //g_signal_connect (bus, "disconnected", G_CALLBACK (ibus_disconnected_cb), NULL); -+ config = ibus_bus_get_config (bus); -+ -+ /* strv == {"m17n", lang, name, NULL} */ -+ dialog = setup_dialog_new (config, msymbol (strv[1]), msymbol (strv[2])); -+ g_strfreev (strv); -+ -+ setup_dialog_load_config (dialog); -+ -+ gtk_window_present (GTK_WINDOW (dialog->dialog)); -+ gtk_dialog_run (GTK_DIALOG (dialog->dialog)); -+ -+ setup_dialog_save_config (dialog); -+ setup_dialog_free (dialog); -+ -+ g_object_unref (bus); - -- gtk_widget_show_all (dialog); -- gtk_dialog_run (GTK_DIALOG(dialog)); -+ M17N_FINI (); - } - - int --- -1.7.7.6 - - -From 11730d65d6d62711d7f8a2ce415d1229a86dd16e Mon Sep 17 00:00:00 2001 -From: Peng Huang -Date: Sun, 18 Sep 2011 22:08:00 -0400 -Subject: [PATCH 03/10] Fix a crash and add some warning log message. - -BUG=Crash in Chrome OS -TEST=Linux desktop - -Review URL: http://codereview.appspot.com/5050041 ---- - src/engine.c | 19 ++++++++++++++++--- - 1 files changed, 16 insertions(+), 3 deletions(-) - -diff --git a/src/engine.c b/src/engine.c -index dcff0c7..db14607 100644 ---- a/src/engine.c -+++ b/src/engine.c -@@ -816,8 +816,15 @@ ibus_m17n_engine_update_lookup_table (IBusM17NEngine *m17n) - ibus_lookup_table_set_page_size (m17n->table, mtext_len (mt)); - - buf = ibus_m17n_mtext_to_ucs4 (mt, &nchars); -- for (i = 0; i < nchars; i++) { -- ibus_lookup_table_append_candidate (m17n->table, ibus_text_new_from_unichar (buf[i])); -+ g_warn_if_fail (buf != NULL); -+ -+ for (i = 0; buf != NULL && i < nchars; i++) { -+ IBusText *text = ibus_text_new_from_unichar (buf[i]); -+ if (text == NULL) { -+ text = ibus_text_new_from_printf ("INVCODE=U+08X%", buf[i]); -+ g_warn_if_reached (); -+ } -+ ibus_lookup_table_append_candidate (m17n->table, text); - } - g_free (buf); - } -@@ -834,9 +841,15 @@ ibus_m17n_engine_update_lookup_table (IBusM17NEngine *m17n) - mtext = (MText *) mplist_value (p); - buf = ibus_m17n_mtext_to_utf8 (mtext); - if (buf) { -- ibus_lookup_table_append_candidate (m17n->table, ibus_text_new_from_string (buf)); -+ ibus_lookup_table_append_candidate (m17n->table, -+ ibus_text_new_from_string (buf)); - g_free (buf); - } -+ else { -+ ibus_lookup_table_append_candidate (m17n->table, -+ ibus_text_new_from_static_string ("NULL")); -+ g_warn_if_reached(); -+ } - } - } - --- -1.7.7.6 - - -From f53d61029aac81559b82fa235216748e42e4850a Mon Sep 17 00:00:00 2001 -From: Daiki Ueno -Date: Tue, 27 Dec 2011 09:48:04 +0900 -Subject: [PATCH 04/10] Supply custom setup element in EngineDesc. - -BUG=RHBZ#760427 -TEST=manually - -Review URL: http://codereview.appspot.com/5500079 ---- - src/m17nutil.c | 5 +++++ - 1 files changed, 5 insertions(+), 0 deletions(-) - -diff --git a/src/m17nutil.c b/src/m17nutil.c -index 54561f2..bc9155a 100644 ---- a/src/m17nutil.c -+++ b/src/m17nutil.c -@@ -114,6 +114,7 @@ ibus_m17n_engine_new (MSymbol lang, - gchar *engine_title; - gchar *engine_icon; - gchar *engine_desc; -+ gchar *engine_setup; - - engine_name = g_strdup_printf ("m17n:%s:%s", msymbol_name (lang), msymbol_name (name)); - -@@ -121,6 +122,8 @@ ibus_m17n_engine_new (MSymbol lang, - engine_title = ibus_m17n_mtext_to_utf8 (title); - engine_icon = ibus_m17n_mtext_to_utf8 (icon); - engine_desc = ibus_m17n_mtext_to_utf8 (desc); -+ engine_setup = g_strdup_printf ("%s/ibus-setup-m17n --name %s", -+ LIBEXECDIR, engine_name); - - #if IBUS_CHECK_VERSION(1,3,99) - engine = ibus_engine_desc_new_varargs ("name", engine_name, -@@ -131,6 +134,7 @@ ibus_m17n_engine_new (MSymbol lang, - "icon", engine_icon ? engine_icon : "", - "layout", "us", - "rank", config->rank, -+ "setup", engine_setup, - NULL); - #else - engine = ibus_engine_desc_new (engine_name, -@@ -149,6 +153,7 @@ ibus_m17n_engine_new (MSymbol lang, - g_free (engine_title); - g_free (engine_icon); - g_free (engine_desc); -+ g_free (engine_setup); - - return engine; - } --- -1.7.7.6 - - -From 6c517a7c18254297cee745f16b96deb1033c55c5 Mon Sep 17 00:00:00 2001 -From: Peng Huang -Date: Fri, 6 Jan 2012 10:21:19 -0500 -Subject: [PATCH 05/10] Fix a typo. - -BUG=None -TEST=Manually - -Review URL: http://codereview.appspot.com/5524043 ---- - src/engine.c | 2 +- - 1 files changed, 1 insertions(+), 1 deletions(-) - -diff --git a/src/engine.c b/src/engine.c -index db14607..c2b30e1 100644 ---- a/src/engine.c -+++ b/src/engine.c -@@ -821,7 +821,7 @@ ibus_m17n_engine_update_lookup_table (IBusM17NEngine *m17n) - for (i = 0; buf != NULL && i < nchars; i++) { - IBusText *text = ibus_text_new_from_unichar (buf[i]); - if (text == NULL) { -- text = ibus_text_new_from_printf ("INVCODE=U+08X%", buf[i]); -+ text = ibus_text_new_from_printf ("INVCODE=U+%04"G_GINT32_FORMAT"X", buf[i]); - g_warn_if_reached (); - } - ibus_lookup_table_append_candidate (m17n->table, text); --- -1.7.7.6 - - -From e2902f6c6efc5bf2b55019140ea8ed82fc977369 Mon Sep 17 00:00:00 2001 -From: Daiki Ueno -Date: Tue, 14 Feb 2012 11:54:07 +0900 -Subject: [PATCH 06/10] Require ibus-1.4 or later and use - ibus_config_get_values. - -BUG=none -TEST=manually - -Review URL: https://codereview.appspot.com/5654073 ---- - configure.ac | 11 +--- - src/engine.c | 109 +++++++++++++++++----------------- - src/m17nutil.c | 98 ------------------------------ - src/m17nutil.h | 16 ----- - src/setup.c | 179 ++++++++++++++++++++++++++++++-------------------------- - 5 files changed, 150 insertions(+), 263 deletions(-) - -diff --git a/configure.ac b/configure.ac -index 927d382..be9728d 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -52,7 +52,7 @@ AM_PROG_LIBTOOL - - # check ibus - PKG_CHECK_MODULES(IBUS, [ -- ibus-1.0 >= 1.3 -+ ibus-1.0 >= 1.4 - ]) - - # check m17n -@@ -97,15 +97,6 @@ AC_REPLACE_FUNCS([minput_list]) - CFLAGS="$save_CFLAGS" - LIBS="$save_LIBS" - --# check if ibus_engine_get_surrounding_text, which is available in ibus-1.3.99+ (git master) --save_CFLAGS="$CFLAGS" --save_LIBS="$LIBS" --CFLAGS="$CFLAGS $IBUS_CFLAGS" --LIBS="$LIBS $IBUS_LIBS" --AC_CHECK_FUNCS([ibus_engine_get_surrounding_text]) --CFLAGS="$save_CFLAGS" --LIBS="$save_LIBS" -- - # define GETTEXT_* variables - GETTEXT_PACKAGE=ibus-m17n - AC_SUBST(GETTEXT_PACKAGE) -diff --git a/src/engine.c b/src/engine.c -index c2b30e1..051b63c 100644 ---- a/src/engine.c -+++ b/src/engine.c -@@ -43,11 +43,7 @@ static void ibus_m17n_engine_class_init (IBusM17NEngineClass *klass); - static void ibus_m17n_config_value_changed (IBusConfig *config, - const gchar *section, - const gchar *name, --#if IBUS_CHECK_VERSION(1,3,99) - GVariant *value, --#else -- GValue *value, --#endif /* !IBUS_CHECK_VERSION(1,3,99) */ - IBusM17NEngineClass *klass); - - static GObject* -@@ -215,7 +211,7 @@ ibus_m17n_engine_class_init (IBusM17NEngineClass *klass) - IBusEngineClass *engine_class = IBUS_ENGINE_CLASS (klass); - gchar *engine_name, *lang = NULL, *name = NULL; - IBusM17NEngineConfig *engine_config; -- gchar *hex; -+ GVariant *values; - - if (parent_class == NULL) - parent_class = (IBusEngineClass *) g_type_class_peek_parent (klass); -@@ -251,46 +247,61 @@ ibus_m17n_engine_class_init (IBusM17NEngineClass *klass) - g_free (lang); - g_free (name); - -+ engine_config = ibus_m17n_get_engine_config (engine_name); -+ g_free (engine_name); -+ - /* configurations are per class */ -- klass->preedit_foreground = INVALID_COLOR; -- klass->preedit_background = INVALID_COLOR; -+ klass->preedit_foreground = engine_config->preedit_highlight ? -+ PREEDIT_FOREGROUND : -+ INVALID_COLOR; -+ klass->preedit_background = engine_config->preedit_highlight ? -+ PREEDIT_BACKGROUND : -+ INVALID_COLOR; - klass->preedit_underline = IBUS_ATTR_UNDERLINE_NONE; - klass->lookup_table_orientation = IBUS_ORIENTATION_SYSTEM; - -- engine_config = ibus_m17n_get_engine_config (engine_name); -- g_free (engine_name); -+ ibus_m17n_engine_config_free (engine_config); -+ -+ values = ibus_config_get_values (config, -+ klass->config_section); -+ if (values != NULL) { -+ GVariant *value; -+ -+ value = g_variant_lookup_value (values, -+ "preedit_foreground", -+ G_VARIANT_TYPE_STRING); -+ if (value != NULL) { -+ const gchar *hex = g_variant_get_string (value, NULL); -+ klass->preedit_foreground = ibus_m17n_parse_color (hex); -+ } -+ g_variant_unref (value); -+ -+ value = g_variant_lookup_value (values, -+ "preedit_background", -+ G_VARIANT_TYPE_STRING); -+ if (value != NULL) { -+ const gchar *hex = g_variant_get_string (value, NULL); -+ klass->preedit_background = ibus_m17n_parse_color (hex); -+ } -+ g_variant_unref (value); - -- if (ibus_m17n_config_get_string (config, -- klass->config_section, -- "preedit_foreground", -- &hex)) { -- klass->preedit_foreground = ibus_m17n_parse_color (hex); -- g_free (hex); -- } else if (engine_config->preedit_highlight) -- klass->preedit_foreground = PREEDIT_FOREGROUND; -- -- if (ibus_m17n_config_get_string (config, -- klass->config_section, -- "preedit_background", -- &hex)) { -- klass->preedit_background = ibus_m17n_parse_color (hex); -- g_free (hex); -- } else if (engine_config->preedit_highlight) -- klass->preedit_background = PREEDIT_BACKGROUND; -- -- if (!ibus_m17n_config_get_int (config, -- klass->config_section, -- "preedit_underline", -- &klass->preedit_underline)) -- klass->preedit_underline = IBUS_ATTR_UNDERLINE_NONE; -- -- if (!ibus_m17n_config_get_int (config, -- klass->config_section, -- "lookup_table_orientation", -- &klass->lookup_table_orientation)) -- klass->lookup_table_orientation = IBUS_ORIENTATION_SYSTEM; -+ value = g_variant_lookup_value (values, -+ "preedit_underline", -+ G_VARIANT_TYPE_INT32); -+ if (value != NULL) { -+ klass->preedit_background = g_variant_get_int32 (value); -+ } -+ g_variant_unref (value); - -- ibus_m17n_engine_config_free (engine_config); -+ value = g_variant_lookup_value (values, -+ "lookup_table_orientation", -+ G_VARIANT_TYPE_INT32); -+ if (value != NULL) { -+ klass->lookup_table_orientation = g_variant_get_int32 (value); -+ } -+ g_variant_unref (value); -+ g_variant_unref (values); -+ } - - g_signal_connect (config, "value-changed", - G_CALLBACK(ibus_m17n_config_value_changed), -@@ -299,44 +310,32 @@ ibus_m17n_engine_class_init (IBusM17NEngineClass *klass) - klass->im = NULL; - } - --#if IBUS_CHECK_VERSION(1,3,99) --#define _g_variant_get_string g_variant_get_string --#define _g_variant_get_int32 g_variant_get_int32 --#else --#define _g_variant_get_string(value, length) g_value_get_string(value) --#define _g_variant_get_int32 g_value_get_int --#endif /* !IBUS_CHECK_VERSION(1,3,99) */ -- - static void - ibus_m17n_config_value_changed (IBusConfig *config, - const gchar *section, - const gchar *name, --#if IBUS_CHECK_VERSION(1,3,99) - GVariant *value, --#else -- GValue *value, --#endif /* !IBUS_CHECK_VERSION(1,3,99) */ - IBusM17NEngineClass *klass) - { - if (g_strcmp0 (section, klass->config_section) == 0) { - if (g_strcmp0 (name, "preedit_foreground") == 0) { -- const gchar *hex = _g_variant_get_string (value, NULL); -+ const gchar *hex = g_variant_get_string (value, NULL); - guint color; - color = ibus_m17n_parse_color (hex); - if (color != INVALID_COLOR) { - klass->preedit_foreground = color; - } - } else if (g_strcmp0 (name, "preedit_background") == 0) { -- const gchar *hex = _g_variant_get_string (value, NULL); -+ const gchar *hex = g_variant_get_string (value, NULL); - guint color; - color = ibus_m17n_parse_color (hex); - if (color != INVALID_COLOR) { - klass->preedit_background = color; - } - } else if (g_strcmp0 (name, "preedit_underline") == 0) { -- klass->preedit_underline = _g_variant_get_int32 (value); -+ klass->preedit_underline = g_variant_get_int32 (value); - } else if (g_strcmp0 (name, "lookup_table_orientation") == 0) { -- klass->lookup_table_orientation = _g_variant_get_int32 (value); -+ klass->lookup_table_orientation = g_variant_get_int32 (value); - } - } - } -diff --git a/src/m17nutil.c b/src/m17nutil.c -index bc9155a..9fa5517 100644 ---- a/src/m17nutil.c -+++ b/src/m17nutil.c -@@ -373,101 +373,3 @@ ibus_m17n_get_component (void) - - return component; - } -- --void --ibus_m17n_config_set_string (IBusConfig *config, -- const gchar *section, -- const gchar *name, -- const gchar *value) --{ --#if IBUS_CHECK_VERSION(1,3,99) -- ibus_config_set_value (config, section, name, g_variant_new_string (value)); --#else -- GValue v = { 0 }; -- -- g_value_init (&v, G_TYPE_STRING); -- g_value_set_string (&v, value); -- ibus_config_set_value (config, section, name, &v); --#endif /* !IBUS_CHECK_VERSION(1,3,99) */ --} -- --gboolean --ibus_m17n_config_get_string (IBusConfig *config, -- const gchar *section, -- const gchar *name, -- gchar **result) --{ --#if IBUS_CHECK_VERSION(1,3,99) -- GVariant *value = NULL; -- -- g_return_val_if_fail (result != NULL, FALSE); -- -- value = ibus_config_get_value (config, section, name); -- if (value) { -- *result = g_strdup (g_variant_get_string (value, NULL)); -- g_variant_unref (value); -- return TRUE; -- } -- return FALSE; --#else -- GValue value = { 0 }; -- -- g_return_val_if_fail (result != NULL, FALSE); -- -- if (ibus_config_get_value (config, section, name, &value)) { -- *result = g_strdup (g_value_get_string (&value)); -- g_value_unset (&value); -- return TRUE; -- } -- return FALSE; --#endif /* !IBUS_CHECK_VERSION(1,3,99) */ --} -- --void --ibus_m17n_config_set_int (IBusConfig *config, -- const gchar *section, -- const gchar *name, -- gint value) --{ --#if IBUS_CHECK_VERSION(1,3,99) -- ibus_config_set_value (config, section, name, g_variant_new_int32 (value)); --#else -- GValue v = { 0 }; -- -- g_value_init (&v, G_TYPE_INT); -- g_value_set_int (&v, value); -- ibus_config_set_value (config, section, name, &v); --#endif /* !IBUS_CHECK_VERSION(1,3,99) */ --} -- --gboolean --ibus_m17n_config_get_int (IBusConfig *config, -- const gchar *section, -- const gchar *name, -- gint *result) --{ --#if IBUS_CHECK_VERSION(1,3,99) -- GVariant *value = NULL; -- -- g_return_val_if_fail (result != NULL, FALSE); -- -- value = ibus_config_get_value (config, section, name); -- if (value) { -- *result = g_variant_get_int32 (value); -- g_variant_unref (value); -- return TRUE; -- } -- return FALSE; --#else -- GValue value = { 0 }; -- -- g_return_val_if_fail (result != NULL, FALSE); -- -- if (ibus_config_get_value (config, section, name, &value)) { -- *result = g_value_get_int (&value); -- g_value_unset (&value); -- return TRUE; -- } -- return FALSE; --#endif /* !IBUS_CHECK_VERSION(1,3,99) */ --} -diff --git a/src/m17nutil.h b/src/m17nutil.h -index 313e7bc..b21244c 100644 ---- a/src/m17nutil.h -+++ b/src/m17nutil.h -@@ -31,20 +31,4 @@ guint ibus_m17n_parse_color (const gchar *hex); - IBusM17NEngineConfig - *ibus_m17n_get_engine_config (const gchar *engine_name); - void ibus_m17n_engine_config_free (IBusM17NEngineConfig *config); --void ibus_m17n_config_set_string (IBusConfig *config, -- const gchar *section, -- const gchar *name, -- const gchar *value); --gboolean ibus_m17n_config_get_string (IBusConfig *config, -- const gchar *section, -- const gchar *name, -- gchar **result); --void ibus_m17n_config_set_int (IBusConfig *config, -- const gchar *section, -- const gchar *name, -- gint value); --gboolean ibus_m17n_config_get_int (IBusConfig *config, -- const gchar *section, -- const gchar *name, -- gint *result); - #endif -diff --git a/src/setup.c b/src/setup.c -index 02db691..7b9609b 100644 ---- a/src/setup.c -+++ b/src/setup.c -@@ -234,97 +234,107 @@ _gdk_color_from_uint (guint color, - } - - static void --setup_dialog_load_config (SetupDialog *dialog) -+load_color (GVariant *values, -+ GtkToggleButton *togglebutton, -+ GtkColorButton *colorbutton, -+ const gchar *name, -+ GdkColor *defval) - { -- gchar *color; -+ GVariant *value; - gboolean bvalue; -- gint ivalue; - GdkColor cvalue; -- GtkCellRenderer *renderer; -- gint index; - -- /* General -> Pre-edit Appearance */ -- /* foreground color of pre-edit buffer */ -+ memcpy (&cvalue, defval, sizeof (GdkColor)); -+ - bvalue = FALSE; -- _gdk_color_from_uint (PREEDIT_FOREGROUND, &cvalue); -- if (ibus_m17n_config_get_string (dialog->config, -- dialog->section, -- "preedit_foreground", -- &color)) { -- if (g_strcmp0 (color, "none") != 0 && gdk_color_parse (color, &cvalue)) -+ value = g_variant_lookup_value (values, name, G_VARIANT_TYPE_STRING); -+ if (value != NULL) { -+ const gchar *color = g_variant_get_string (value, NULL); -+ if (g_strcmp0 (color, "none") != 0 && -+ gdk_color_parse (color, &cvalue)) - bvalue = TRUE; -- g_free (color); -+ g_variant_unref (value); - } - -- gtk_toggle_button_set_active -- (GTK_TOGGLE_BUTTON (dialog->checkbutton_foreground), -- bvalue); -+ gtk_toggle_button_set_active (togglebutton, bvalue); -+ gtk_widget_set_sensitive (GTK_WIDGET (colorbutton), bvalue); -+ gtk_color_button_set_color (GTK_COLOR_BUTTON (colorbutton), &cvalue); -+} -+ -+static void -+load_choice (GVariant *values, -+ GtkComboBox *combo, -+ const gchar *name, -+ gint defval) -+{ -+ GVariant *value; -+ gint ivalue, index; -+ GtkCellRenderer *renderer; -+ -+ renderer = gtk_cell_renderer_text_new (); -+ gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo), renderer, TRUE); -+ gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combo), -+ renderer, "text", 0, NULL); -+ -+ ivalue = defval; -+ value = g_variant_lookup_value (values, name, G_VARIANT_TYPE_INT32); -+ if (value != NULL) { -+ ivalue = g_variant_get_int32 (value); -+ g_variant_unref (value); -+ } -+ -+ index = get_combo_box_index_by_value (GTK_COMBO_BOX (combo), ivalue); -+ gtk_combo_box_set_active (GTK_COMBO_BOX (combo), index); -+} -+ -+static void -+setup_dialog_load_config (SetupDialog *dialog) -+{ -+ GVariant *values; -+ GdkColor defcol; -+ GtkCellRenderer *renderer; -+ -+ values = ibus_config_get_values (dialog->config, dialog->section); -+ /* ibus_config_get_values may return NULL on failure */ -+ if (values == NULL) { -+ GVariantType *child_type = g_variant_type_new ("{sv}"); -+ values = g_variant_new_array (child_type, NULL, 0); -+ g_variant_type_free (child_type); -+ } -+ -+ /* General -> Pre-edit Appearance */ -+ /* foreground color of pre-edit buffer */ -+ _gdk_color_from_uint (PREEDIT_FOREGROUND, &defcol); -+ load_color (values, -+ GTK_TOGGLE_BUTTON (dialog->checkbutton_foreground), -+ GTK_COLOR_BUTTON (dialog->colorbutton_foreground), -+ "preedit_foreground", -+ &defcol); - g_signal_connect (dialog->checkbutton_foreground, "toggled", - G_CALLBACK (on_foreground_toggled), dialog); -- gtk_widget_set_sensitive (dialog->colorbutton_foreground, bvalue); -- gtk_color_button_set_color -- (GTK_COLOR_BUTTON (dialog->colorbutton_foreground), -- &cvalue); - - /* background color of pre-edit buffer */ -- bvalue = FALSE; -- _gdk_color_from_uint (PREEDIT_BACKGROUND, &cvalue); -- if (ibus_m17n_config_get_string (dialog->config, -- dialog->section, -- "preedit_background", -- &color)) { -- if (g_strcmp0 (color, "none") != 0 && gdk_color_parse (color, &cvalue)) -- bvalue = TRUE; -- g_free (color); -- } -- gtk_toggle_button_set_active -- (GTK_TOGGLE_BUTTON (dialog->checkbutton_background), -- bvalue); -+ _gdk_color_from_uint (PREEDIT_BACKGROUND, &defcol); -+ load_color (values, -+ GTK_TOGGLE_BUTTON (dialog->checkbutton_background), -+ GTK_COLOR_BUTTON (dialog->colorbutton_background), -+ "preedit_background", -+ &defcol); - g_signal_connect (dialog->checkbutton_background, "toggled", - G_CALLBACK (on_background_toggled), dialog); -- gtk_widget_set_sensitive (dialog->colorbutton_background, bvalue); -- gtk_color_button_set_color -- (GTK_COLOR_BUTTON (dialog->colorbutton_background), -- &cvalue); - - /* underline of pre-edit buffer */ -- renderer = gtk_cell_renderer_text_new (); -- gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (dialog->combobox_underline), -- renderer, TRUE); -- gtk_cell_layout_set_attributes -- (GTK_CELL_LAYOUT (dialog->combobox_underline), -- renderer, "text", 0, NULL); -- if (!ibus_m17n_config_get_int (dialog->config, -- dialog->section, -- "preedit_underline", -- &ivalue)) -- ivalue = IBUS_ATTR_UNDERLINE_NONE; -- -- index = get_combo_box_index_by_value -- (GTK_COMBO_BOX (dialog->combobox_underline), -- ivalue); -- gtk_combo_box_set_active (GTK_COMBO_BOX (dialog->combobox_underline), -- index); -+ load_choice (values, -+ GTK_COMBO_BOX (dialog->combobox_underline), -+ "preedit_underline", -+ IBUS_ATTR_UNDERLINE_NONE); - - /* General -> Other */ - /* lookup table orientation */ -- renderer = gtk_cell_renderer_text_new (); -- gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (dialog->combobox_orientation), -- renderer, TRUE); -- gtk_cell_layout_set_attributes -- (GTK_CELL_LAYOUT (dialog->combobox_orientation), -- renderer, "text", 0, NULL); -- if (!ibus_m17n_config_get_int (dialog->config, -- dialog->section, -- "lookup_table_orientation", -- &ivalue)) -- ivalue = IBUS_ORIENTATION_SYSTEM; -- -- index = get_combo_box_index_by_value -- (GTK_COMBO_BOX (dialog->combobox_orientation), -- ivalue); -- gtk_combo_box_set_active (GTK_COMBO_BOX (dialog->combobox_orientation), -- index); -+ load_choice (values, -+ GTK_COMBO_BOX (dialog->combobox_orientation), -+ "lookup_table_orientation", -+ IBUS_ORIENTATION_SYSTEM); - - /* Advanced -> m17n-lib configuration */ - dialog->store = gtk_list_store_new (NUM_COLS, -@@ -355,6 +365,8 @@ setup_dialog_load_config (SetupDialog *dialog) - - g_signal_connect (dialog->treeview, "query-tooltip", - G_CALLBACK (on_query_tooltip), NULL); -+ -+ g_variant_unref (values); - } - - static gchar * -@@ -372,23 +384,20 @@ save_color (SetupDialog *dialog, - GtkColorButton *colorbutton, - const gchar *name) - { -+ GVariant *value; -+ - if (gtk_toggle_button_get_active (togglebutton)) { - GdkColor color; -- gchar *svalue; - - gtk_color_button_get_color (colorbutton, &color); -- svalue = _gdk_color_to_string (&color); -- ibus_m17n_config_set_string (dialog->config, -- dialog->section, -- name, -- svalue); -- g_free (svalue); -+ value = g_variant_new_string (_gdk_color_to_string (&color)); - } else { -- ibus_m17n_config_set_string (dialog->config, -- dialog->section, -- name, -- "none"); -+ value = g_variant_new_string ("none"); - } -+ ibus_config_set_value (dialog->config, -+ dialog->section, -+ name, -+ value); - } - - static void -@@ -399,12 +408,14 @@ save_choice (SetupDialog *dialog, - GtkTreeModel *model; - GtkTreeIter iter; - gint active; -+ GVariant *value; - - model = gtk_combo_box_get_model (combo); - gtk_combo_box_get_active_iter (combo, &iter); - gtk_tree_model_get (model, &iter, COLUMN_VALUE, &active, -1); - -- ibus_m17n_config_set_int (dialog->config, dialog->section, name, active); -+ value = g_variant_new_int32 (active); -+ ibus_config_set_value (dialog->config, dialog->section, name, value); - } - - static gboolean --- -1.7.7.6 - - -From 74f230fac8be43fa65380ff133ed4ef24bf55a57 Mon Sep 17 00:00:00 2001 -From: Daiki Ueno -Date: Wed, 15 Feb 2012 09:50:59 +0900 -Subject: [PATCH 07/10] Define "symbol" in each IBusEngineDesc. - -BUG=none -TEST=manually on Fedora 16 - -Review URL: https://codereview.appspot.com/5647062 ---- - src/default.xml.in.in | 206 +++++++++++++++++++++++++++++++++++++++++++++++++ - src/m17nutil.c | 23 +++--- - src/m17nutil.h | 3 + - 3 files changed, 219 insertions(+), 13 deletions(-) - -diff --git a/src/default.xml.in.in b/src/default.xml.in.in -index dc93fd3..1248d48 100644 ---- a/src/default.xml.in.in -+++ b/src/default.xml.in.in -@@ -10,6 +10,7 @@ - m17n:* - 0 - FALSE -+ - - -@@ -194,4 +195,209 @@ - m17n:ja:anthy - TRUE - -+ -+ -+ m17n:as:* -+ -+ -+ -+ m17n:bn:* -+ বা -+ -+ -+ m17n:gu:* -+ ગુ -+ -+ -+ m17n:hi:* -+ हिं -+ -+ -+ m17n:kn:* -+ -+ -+ -+ m17n:ks:* -+ -+ -+ -+ m17n:mai:* -+ मै -+ -+ -+ m17n:ml:* -+ -+ -+ -+ m17n:mr:* -+ -+ -+ -+ m17n:ne:* -+ ने -+ -+ -+ m17n:or:* -+ -+ -+ -+ m17n:pa:* -+ ਪੰ -+ -+ -+ m17n:sa:* -+ सं -+ -+ -+ m17n:sd:* -+ सिं -+ -+ -+ m17n:si:* -+ සි -+ -+ -+ m17n:ta:* -+ -+ -+ -+ m17n:te:* -+ తె -+ -+ -+ m17n:*:kbd -+ -+ -+ -+ m17n:*:pre -+ -+ -+ -+ m17n:*:post -+ -+ -+ -+ m17n:am:sera -+ -+ -+ -+ m17n:bo:* -+ -+ -+ -+ m17n:cr:* -+ -+ -+ -+ m17n:dv:* -+ -+ -+ -+ m17n:eo:* -+ -+ -+ -+ m17n:fa:* -+ ف -+ -+ -+ m17n:fr:* -+ -+ -+ -+ m17n:ii:* -+ -+ -+ -+ m17n:iu:* -+ -+ -+ -+ m17n:ja:anthy -+ -+ -+ -+ m17n:kk:* -+ قا -+ -+ -+ m17n:km:* -+ -+ -+ -+ m17n:lo:* -+ -+ -+ -+ m17n:nsk:* -+ -+ -+ -+ m17n:oj:* -+ -+ -+ -+ m17n:ps:* -+ -+ -+ -+ m17n:ru:* -+ Я -+ -+ -+ m17n:sv:* -+ -+ -+ -+ m17n:syrc:* -+ -+ -+ -+ m17n:tai:* -+ -+ -+ -+ m17n:th:* -+ -+ -+ -+ m17n:ur:* -+ خ -+ -+ -+ m17n:vi:han -+ -+ -+ -+ m17n:vi:nom* -+ -+ -+ -+ m17n:vi:* -+ -+ -+ -+ m17n:yi:* -+ -+ -+ -+ m17n:zh:bopomofo -+ -+ -+ -+ m17n:zh:cangjie -+ -+ -+ -+ m17n:zh:py* -+ -+ -+ -+ m17n:zh:quick -+ -+ -+ -+ m17n:zh:tonepy* -+ -+ - -diff --git a/src/m17nutil.c b/src/m17nutil.c -index 9fa5517..975214d 100644 ---- a/src/m17nutil.c -+++ b/src/m17nutil.c -@@ -15,7 +15,8 @@ static MConverter *utf8_converter = NULL; - - typedef enum { - ENGINE_CONFIG_RANK_MASK = 1 << 0, -- ENGINE_CONFIG_PREEDIT_HIGHLIGHT_MASK = 1 << 1 -+ ENGINE_CONFIG_SYMBOL_MASK = 1 << 1, -+ ENGINE_CONFIG_PREEDIT_HIGHLIGHT_MASK = 1 << 2 - } EngineConfigMask; - - struct _EngineConfigNode { -@@ -125,7 +126,6 @@ ibus_m17n_engine_new (MSymbol lang, - engine_setup = g_strdup_printf ("%s/ibus-setup-m17n --name %s", - LIBEXECDIR, engine_name); - --#if IBUS_CHECK_VERSION(1,3,99) - engine = ibus_engine_desc_new_varargs ("name", engine_name, - "longname", engine_longname, - "description", engine_desc ? engine_desc : "", -@@ -134,19 +134,9 @@ ibus_m17n_engine_new (MSymbol lang, - "icon", engine_icon ? engine_icon : "", - "layout", "us", - "rank", config->rank, -+ "symbol", config->symbol ? config->symbol : "", - "setup", engine_setup, - NULL); --#else -- engine = ibus_engine_desc_new (engine_name, -- engine_longname, -- engine_desc ? engine_desc : "", -- msymbol_name (lang), -- "GPL", -- "", -- engine_icon ? engine_icon : "", -- "us"); -- engine->rank = config->rank; --#endif /* !IBUS_CHECK_VERSION(1,3,99) */ - - g_free (engine_name); - g_free (engine_longname); -@@ -276,6 +266,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; -+ if (cnode->mask & ENGINE_CONFIG_SYMBOL_MASK) -+ config->symbol = cnode->config.symbol; - if (cnode->mask & ENGINE_CONFIG_PREEDIT_HIGHLIGHT_MASK) - config->preedit_highlight = cnode->config.preedit_highlight; - } -@@ -308,6 +300,11 @@ ibus_m17n_engine_config_parse_xml_node (EngineConfigNode *cnode, - cnode->mask |= ENGINE_CONFIG_RANK_MASK; - continue; - } -+ if (g_strcmp0 (sub_node->name , "symbol") == 0) { -+ cnode->config.symbol = g_strdup (sub_node->text); -+ cnode->mask |= ENGINE_CONFIG_SYMBOL_MASK; -+ continue; -+ } - if (g_strcmp0 (sub_node->name , "preedit-highlight") == 0) { - if (g_ascii_strcasecmp ("TRUE", sub_node->text) == 0) - cnode->config.preedit_highlight = TRUE; -diff --git a/src/m17nutil.h b/src/m17nutil.h -index b21244c..c77b6eb 100644 ---- a/src/m17nutil.h -+++ b/src/m17nutil.h -@@ -14,6 +14,9 @@ struct _IBusM17NEngineConfig { - /* engine rank */ - gint rank; - -+ /* symbol */ -+ gchar *symbol; -+ - /* whether to highlight preedit */ - gboolean preedit_highlight; - }; --- -1.7.7.6 - - -From 3a94b20091d898345440cd5b734528ea35927c7e Mon Sep 17 00:00:00 2001 -From: Daiki Ueno -Date: Tue, 6 Mar 2012 10:02:18 +0900 -Subject: [PATCH 08/10] Silence warnings when engine is skipped. - -Also, fix some mistakes. - -BUG=none -TEST=manually with Fedora's default.xml - -Review URL: https://codereview.appspot.com/5730054 ---- - src/Makefile.am | 12 ++++++------ - src/engine.c | 16 +++++----------- - src/m17nutil.c | 6 ++++-- - src/main.c | 5 +++-- - src/setup.c | 2 ++ - 5 files changed, 20 insertions(+), 21 deletions(-) - -diff --git a/src/Makefile.am b/src/Makefile.am -index e354149..39d6523 100644 ---- a/src/Makefile.am -+++ b/src/Makefile.am -@@ -1,6 +1,6 @@ - # vim:set noet ts=4: - # --# ibus-anthy - The Anthy engine for IBus -+# ibus-m17n - The m17n engine for IBus - # - # Copyright (c) 2007-2008 Huang Peng - # -@@ -52,13 +52,13 @@ test_m17n_LDADD = \ - - libexec_PROGRAMS = ibus-engine-m17n - --noinst_LIBRARIES = libm17ncommon.a -+noinst_LTLIBRARIES = libm17ncommon.la - --libm17ncommon_a_SOURCES = \ -+libm17ncommon_la_SOURCES = \ - m17nutil.c \ - m17nutil.h \ - $(NULL) --libm17ncommon_a_LIBADD = $(LIBOBJS) -+libm17ncommon_la_LIBADD = $(LTLIBOBJS) - - ibus_engine_m17n_SOURCES = \ - main.c \ -@@ -66,7 +66,7 @@ ibus_engine_m17n_SOURCES = \ - engine.h \ - $(NULL) - ibus_engine_m17n_LDADD = \ -- libm17ncommon.a \ -+ libm17ncommon.la \ - @IBUS_LIBS@ \ - @M17N_LIBS@ \ - $(NULL) -@@ -82,7 +82,7 @@ ibus_setup_m17n_CFLAGS = \ - $(AM_CFLAGS) \ - $(NULL) - ibus_setup_m17n_LDADD = \ -- libm17ncommon.a \ -+ libm17ncommon.la \ - @IBUS_LIBS@ \ - @M17N_LIBS@ \ - @GTK_LIBS@ \ -diff --git a/src/engine.c b/src/engine.c -index 051b63c..9dc61d0 100644 ---- a/src/engine.c -+++ b/src/engine.c -@@ -273,8 +273,8 @@ ibus_m17n_engine_class_init (IBusM17NEngineClass *klass) - if (value != NULL) { - const gchar *hex = g_variant_get_string (value, NULL); - klass->preedit_foreground = ibus_m17n_parse_color (hex); -+ g_variant_unref (value); - } -- g_variant_unref (value); - - value = g_variant_lookup_value (values, - "preedit_background", -@@ -282,24 +282,24 @@ ibus_m17n_engine_class_init (IBusM17NEngineClass *klass) - if (value != NULL) { - const gchar *hex = g_variant_get_string (value, NULL); - klass->preedit_background = ibus_m17n_parse_color (hex); -+ g_variant_unref (value); - } -- g_variant_unref (value); - - value = g_variant_lookup_value (values, - "preedit_underline", - G_VARIANT_TYPE_INT32); - if (value != NULL) { - klass->preedit_background = g_variant_get_int32 (value); -+ g_variant_unref (value); - } -- g_variant_unref (value); - - value = g_variant_lookup_value (values, - "lookup_table_orientation", - G_VARIANT_TYPE_INT32); - if (value != NULL) { - klass->lookup_table_orientation = g_variant_get_int32 (value); -+ g_variant_unref (value); - } -- g_variant_unref (value); - g_variant_unref (values); - } - -@@ -525,7 +525,7 @@ ibus_m17n_engine_commit_string (IBusM17NEngine *m17n, - - Since IBus engines are supposed to be cross-platform, the code - should go into IBus core, instead of ibus-m17n. */ --MSymbol -+static MSymbol - ibus_m17n_key_event_to_symbol (guint keycode, - guint keyval, - guint modifiers) -@@ -699,11 +699,9 @@ ibus_m17n_engine_enable (IBusEngine *engine) - - parent_class->enable (engine); - --#ifdef HAVE_IBUS_ENGINE_GET_SURROUNDING_TEXT - /* Issue a dummy ibus_engine_get_surrounding_text() call to tell - input context that we will use surrounding-text. */ - ibus_engine_get_surrounding_text (engine, NULL, NULL, NULL); --#endif /* HAVE_IBUS_ENGINE_GET_SURROUNDING_TEXT */ - } - - static void -@@ -930,9 +928,6 @@ ibus_m17n_engine_callback (MInputContext *context, - } - else if (command == Minput_reset) { - } -- /* ibus_engine_get_surrounding_text is only available in the current -- git master (1.3.99+) */ --#ifdef HAVE_IBUS_ENGINE_GET_SURROUNDING_TEXT - else if (command == Minput_get_surrounding_text && - (((IBusEngine *) m17n)->client_capabilities & - IBUS_CAP_SURROUNDING_TEXT) != 0) { -@@ -970,7 +965,6 @@ ibus_m17n_engine_callback (MInputContext *context, - mplist_set (m17n->context->plist, Mtext, surround); - m17n_object_unref (surround); - } --#endif /* !HAVE_IBUS_ENGINE_GET_SURROUNDING_TEXT */ - else if (command == Minput_delete_surrounding_text && - (((IBusEngine *) m17n)->client_capabilities & - IBUS_CAP_SURROUNDING_TEXT) != 0) { -diff --git a/src/m17nutil.c b/src/m17nutil.c -index 975214d..1c2b251 100644 ---- a/src/m17nutil.c -+++ b/src/m17nutil.c -@@ -188,8 +188,10 @@ ibus_m17n_list_engines (void) - continue; - } - if (config->rank < 0) { -- g_warning ("skipped %s since its rank is lower than 0", -- engine_name); -+ g_log ("ibus-m17n", -+ G_LOG_LEVEL_MESSAGE, -+ "skipped %s since its rank is lower than 0", -+ engine_name); - g_free (engine_name); - continue; - } -diff --git a/src/main.c b/src/main.c -index f03e504..0a51491 100644 ---- a/src/main.c -+++ b/src/main.c -@@ -115,12 +115,13 @@ main (gint argc, gchar **argv) - - if (!g_option_context_parse (context, &argc, &argv, &error)) { - g_print ("Option parsing failed: %s\n", error->message); -- exit (-1); -+ g_error_free (error); -+ exit (EXIT_FAILURE); - } - - if (xml) { - print_engines_xml (); -- exit (0); -+ exit (EXIT_SUCCESS); - } - - start_component (); -diff --git a/src/setup.c b/src/setup.c -index 7b9609b..cc5cb09 100644 ---- a/src/setup.c -+++ b/src/setup.c -@@ -527,6 +527,8 @@ setup_dialog_new (IBusConfig *config, - if (gtk_builder_add_from_file (builder, - SETUPDIR "/ibus-m17n-preferences.ui", - &error) == 0) { -+ g_warning ("can't read ibus-m17n-preferences.ui: %s", -+ error->message); - g_error_free (error); - g_return_val_if_reached (NULL); - } --- -1.7.7.6 - - -From b5493a0267283c63f1bf74f697afd8d9a3290ebc Mon Sep 17 00:00:00 2001 -From: Daiki Ueno -Date: Tue, 27 Mar 2012 15:28:01 +0900 -Subject: [PATCH 09/10] Fix handling unknown keyval. - -BUG=none -TEST=manually - -Review URL: https://codereview.appspot.com/5929043 ---- - src/engine.c | 7 ++++--- - 1 files changed, 4 insertions(+), 3 deletions(-) - -diff --git a/src/engine.c b/src/engine.c -index 9dc61d0..4c7411c 100644 ---- a/src/engine.c -+++ b/src/engine.c -@@ -567,12 +567,13 @@ ibus_m17n_key_event_to_symbol (guint keycode, - g_string_append_c (keysym, c); - } - else { -- mask |= modifiers & (IBUS_CONTROL_MASK | IBUS_SHIFT_MASK); -- g_string_append (keysym, ibus_keyval_name (keyval)); -- if (keysym->len == 0) { -+ const gchar *name = ibus_keyval_name (keyval); -+ if (name == NULL) { - g_string_free (keysym, TRUE); - return Mnil; - } -+ mask |= modifiers & (IBUS_CONTROL_MASK | IBUS_SHIFT_MASK); -+ g_string_append (keysym, name); - } - - mask |= modifiers & (IBUS_MOD1_MASK | --- -1.7.7.6 - - -From 4928f9b8634de05aed125d825471211a0a2c8a07 Mon Sep 17 00:00:00 2001 -From: Daiki Ueno -Date: Wed, 28 Mar 2012 09:50:12 +0900 -Subject: [PATCH 10/10] Add longname to engine config. - -BUG=none -TEST=manually - -Review URL: https://codereview.appspot.com/5927046 ---- - src/default.xml.in.in | 5 +++++ - src/m17nutil.c | 12 ++++++++++-- - src/m17nutil.h | 3 +++ - 3 files changed, 18 insertions(+), 2 deletions(-) - -diff --git a/src/default.xml.in.in b/src/default.xml.in.in -index 1248d48..9f5a01e 100644 ---- a/src/default.xml.in.in -+++ b/src/default.xml.in.in -@@ -389,6 +389,11 @@ - - - -+ m17n:zh:pinyin -+ PY -+ hanyu pinyin (m17n) -+ -+ - m17n:zh:py* - - -diff --git a/src/m17nutil.c b/src/m17nutil.c -index 1c2b251..51026b2 100644 ---- a/src/m17nutil.c -+++ b/src/m17nutil.c -@@ -16,7 +16,8 @@ static MConverter *utf8_converter = NULL; - typedef enum { - ENGINE_CONFIG_RANK_MASK = 1 << 0, - ENGINE_CONFIG_SYMBOL_MASK = 1 << 1, -- ENGINE_CONFIG_PREEDIT_HIGHLIGHT_MASK = 1 << 2 -+ ENGINE_CONFIG_LONGNAME_MASK = 1 << 2, -+ ENGINE_CONFIG_PREEDIT_HIGHLIGHT_MASK = 1 << 3 - } EngineConfigMask; - - struct _EngineConfigNode { -@@ -127,7 +128,7 @@ ibus_m17n_engine_new (MSymbol lang, - LIBEXECDIR, engine_name); - - engine = ibus_engine_desc_new_varargs ("name", engine_name, -- "longname", engine_longname, -+ "longname", config->longname ? config->longname : engine_longname, - "description", engine_desc ? engine_desc : "", - "language", msymbol_name (lang), - "license", "GPL", -@@ -270,6 +271,8 @@ ibus_m17n_get_engine_config (const gchar *engine_name) - config->rank = cnode->config.rank; - if (cnode->mask & ENGINE_CONFIG_SYMBOL_MASK) - config->symbol = cnode->config.symbol; -+ if (cnode->mask & ENGINE_CONFIG_LONGNAME_MASK) -+ config->longname = cnode->config.longname; - if (cnode->mask & ENGINE_CONFIG_PREEDIT_HIGHLIGHT_MASK) - config->preedit_highlight = cnode->config.preedit_highlight; - } -@@ -307,6 +310,11 @@ ibus_m17n_engine_config_parse_xml_node (EngineConfigNode *cnode, - cnode->mask |= ENGINE_CONFIG_SYMBOL_MASK; - continue; - } -+ if (g_strcmp0 (sub_node->name , "longname") == 0) { -+ cnode->config.longname = g_strdup (sub_node->text); -+ cnode->mask |= ENGINE_CONFIG_LONGNAME_MASK; -+ continue; -+ } - if (g_strcmp0 (sub_node->name , "preedit-highlight") == 0) { - if (g_ascii_strcasecmp ("TRUE", sub_node->text) == 0) - cnode->config.preedit_highlight = TRUE; -diff --git a/src/m17nutil.h b/src/m17nutil.h -index c77b6eb..d790cf8 100644 ---- a/src/m17nutil.h -+++ b/src/m17nutil.h -@@ -17,6 +17,9 @@ struct _IBusM17NEngineConfig { - /* symbol */ - gchar *symbol; - -+ /* overridding longname shown on panel */ -+ gchar *longname; -+ - /* whether to highlight preedit */ - gboolean preedit_highlight; - }; --- -1.7.7.6 - diff --git a/ibus-m17n-hide-title-status.patch b/ibus-m17n-hide-title-status.patch index 7d24576..6326eba 100644 --- a/ibus-m17n-hide-title-status.patch +++ b/ibus-m17n-hide-title-status.patch @@ -7,19 +7,19 @@ Subject: [PATCH 2/4] Hide status from the panel if status == title. src/engine.c | 8 +++++++- 1 files changed, 7 insertions(+), 1 deletions(-) -diff --git a/src/engine.c b/src/engine.c -index 4c7411c..efbce66 100644 ---- a/src/engine.c -+++ b/src/engine.c -@@ -35,6 +35,7 @@ struct _IBusM17NEngineClass { - gint preedit_underline; +Index: ibus-m17n-1.3.4/src/engine.c +=================================================================== +--- ibus-m17n-1.3.4.orig/src/engine.c ++++ ibus-m17n-1.3.4/src/engine.c +@@ -36,6 +36,7 @@ struct _IBusM17NEngineClass { + IBusPreeditFocusMode preedit_focus_mode; gint lookup_table_orientation; + gchar *title; MInputMethod *im; }; -@@ -244,6 +245,10 @@ ibus_m17n_engine_class_init (IBusM17NEngineClass *klass) +@@ -245,6 +246,10 @@ ibus_m17n_engine_class_init (IBusM17NEng } engine_name = g_strdup_printf ("m17n:%s:%s", lang, name); klass->config_section = g_strdup_printf ("engine/M17N/%s/%s", lang, name); @@ -30,7 +30,7 @@ index 4c7411c..efbce66 100644 g_free (lang); g_free (name); -@@ -895,8 +900,9 @@ ibus_m17n_engine_callback (MInputContext *context, +@@ -903,8 +908,9 @@ ibus_m17n_engine_callback (MInputContext else if (command == Minput_status_draw) { gchar *status; status = ibus_m17n_mtext_to_utf8 (m17n->context->status); @@ -41,6 +41,3 @@ index 4c7411c..efbce66 100644 IBusText *text; text = ibus_text_new_from_string (status); ibus_property_set_label (m17n->status_prop, text); --- -1.7.7.6 - diff --git a/ibus-m17n-virtkbd.patch b/ibus-m17n-virtkbd.patch index 8c02494..1a88d2a 100644 --- a/ibus-m17n-virtkbd.patch +++ b/ibus-m17n-virtkbd.patch @@ -12,10 +12,10 @@ Subject: [PATCH 4/4] Add virtual keyboard support. src/m17nutil.h | 3 + 6 files changed, 434 insertions(+), 1 deletions(-) -diff --git a/configure.ac b/configure.ac -index be9728d..3daf917 100644 ---- a/configure.ac -+++ b/configure.ac +Index: ibus-m17n-1.3.4/configure.ac +=================================================================== +--- ibus-m17n-1.3.4.orig/configure.ac ++++ ibus-m17n-1.3.4/configure.ac @@ -88,6 +88,23 @@ fi AM_CONDITIONAL([HAVE_GTK],[test x$with_gtk != xno]) @@ -40,10 +40,10 @@ index be9728d..3daf917 100644 # check if minput_list, which is available in m17n-lib 1.6.2+ (CVS) save_CFLAGS="$CFLAGS" save_LIBS="$LIBS" -diff --git a/src/Makefile.am b/src/Makefile.am -index 39d6523..93e7dfd 100644 ---- a/src/Makefile.am -+++ b/src/Makefile.am +Index: ibus-m17n-1.3.4/src/Makefile.am +=================================================================== +--- ibus-m17n-1.3.4.orig/src/Makefile.am ++++ ibus-m17n-1.3.4/src/Makefile.am @@ -65,10 +65,15 @@ ibus_engine_m17n_SOURCES = \ engine.c \ engine.h \ @@ -60,10 +60,10 @@ index 39d6523..93e7dfd 100644 $(NULL) if HAVE_GTK -diff --git a/src/default.xml.in.in b/src/default.xml.in.in -index fda4f30..cbc29af 100644 ---- a/src/default.xml.in.in -+++ b/src/default.xml.in.in +Index: ibus-m17n-1.3.4/src/default.xml.in.in +=================================================================== +--- ibus-m17n-1.3.4.orig/src/default.xml.in.in ++++ ibus-m17n-1.3.4/src/default.xml.in.in @@ -11,6 +11,7 @@ 0 FALSE @@ -187,10 +187,10 @@ index fda4f30..cbc29af 100644 + te-inscript,us + -diff --git a/src/engine.c b/src/engine.c -index efbce66..cd18e76 100644 ---- a/src/engine.c -+++ b/src/engine.c +Index: ibus-m17n-1.3.4/src/engine.c +=================================================================== +--- ibus-m17n-1.3.4.orig/src/engine.c ++++ ibus-m17n-1.3.4/src/engine.c @@ -7,6 +7,9 @@ #include #include @@ -214,9 +214,9 @@ index efbce66..cd18e76 100644 IBusPropList *prop_list; }; -@@ -34,9 +39,16 @@ struct _IBusM17NEngineClass { - guint preedit_background; +@@ -35,9 +40,16 @@ struct _IBusM17NEngineClass { gint preedit_underline; + IBusPreeditFocusMode preedit_focus_mode; gint lookup_table_orientation; + gchar *virtual_keyboard; @@ -231,7 +231,7 @@ index efbce66..cd18e76 100644 }; /* functions prototype */ -@@ -100,13 +112,184 @@ static IBusEngineClass *parent_class = NULL; +@@ -101,13 +113,184 @@ static IBusEngineClass *parent_class = N static IBusConfig *config = NULL; @@ -416,15 +416,15 @@ index efbce66..cd18e76 100644 } static gboolean -@@ -264,6 +447,7 @@ ibus_m17n_engine_class_init (IBusM17NEngineClass *klass) - INVALID_COLOR; - klass->preedit_underline = IBUS_ATTR_UNDERLINE_NONE; +@@ -268,6 +451,7 @@ ibus_m17n_engine_class_init (IBusM17NEng + IBUS_ENGINE_PREEDIT_COMMIT : + IBUS_ENGINE_PREEDIT_CLEAR; klass->lookup_table_orientation = IBUS_ORIENTATION_SYSTEM; + klass->virtual_keyboard = engine_config->virtual_keyboard; ibus_m17n_engine_config_free (engine_config); -@@ -313,6 +497,11 @@ ibus_m17n_engine_class_init (IBusM17NEngineClass *klass) +@@ -317,6 +501,11 @@ ibus_m17n_engine_class_init (IBusM17NEng klass); klass->im = NULL; @@ -436,7 +436,7 @@ index efbce66..cd18e76 100644 } static void -@@ -350,6 +539,7 @@ ibus_m17n_engine_init (IBusM17NEngine *m17n) +@@ -354,6 +543,7 @@ ibus_m17n_engine_init (IBusM17NEngine *m { IBusText* label; IBusText* tooltip; @@ -444,7 +444,7 @@ index efbce66..cd18e76 100644 m17n->prop_list = ibus_prop_list_new (); g_object_ref_sink (m17n->prop_list); -@@ -382,6 +572,36 @@ ibus_m17n_engine_init (IBusM17NEngine *m17n) +@@ -386,6 +576,36 @@ ibus_m17n_engine_init (IBusM17NEngine *m ibus_prop_list_append (m17n->prop_list, m17n->setup_prop); #endif /* HAVE_SETUP */ @@ -481,7 +481,7 @@ index efbce66..cd18e76 100644 m17n->table = ibus_lookup_table_new (9, 0, TRUE, TRUE); g_object_ref_sink (m17n->table); m17n->context = NULL; -@@ -467,6 +687,11 @@ ibus_m17n_engine_destroy (IBusM17NEngine *m17n) +@@ -471,6 +691,11 @@ ibus_m17n_engine_destroy (IBusM17NEngine } #endif /* HAVE_SETUP */ @@ -493,7 +493,7 @@ index efbce66..cd18e76 100644 if (m17n->table) { g_object_unref (m17n->table); m17n->table = NULL; -@@ -708,6 +933,14 @@ ibus_m17n_engine_enable (IBusEngine *engine) +@@ -716,6 +941,14 @@ ibus_m17n_engine_enable (IBusEngine *eng /* Issue a dummy ibus_engine_get_surrounding_text() call to tell input context that we will use surrounding-text. */ ibus_engine_get_surrounding_text (engine, NULL, NULL, NULL); @@ -508,7 +508,7 @@ index efbce66..cd18e76 100644 } static void -@@ -717,6 +950,14 @@ ibus_m17n_engine_disable (IBusEngine *engine) +@@ -725,6 +958,14 @@ ibus_m17n_engine_disable (IBusEngine *en ibus_m17n_engine_focus_out (engine); parent_class->disable (engine); @@ -523,7 +523,7 @@ index efbce66..cd18e76 100644 } static void -@@ -764,6 +1005,7 @@ ibus_m17n_engine_property_activate (IBusEngine *engine, +@@ -772,6 +1013,7 @@ ibus_m17n_engine_property_activate (IBus guint prop_state) { IBusM17NEngine *m17n = (IBusM17NEngine *) engine; @@ -531,7 +531,7 @@ index efbce66..cd18e76 100644 #ifdef HAVE_SETUP if (g_strcmp0 (prop_name, "setup") == 0) { -@@ -779,6 +1021,53 @@ ibus_m17n_engine_property_activate (IBusEngine *engine, +@@ -787,6 +1029,53 @@ ibus_m17n_engine_property_activate (IBus } #endif /* HAVE_SETUP */ @@ -585,10 +585,10 @@ index efbce66..cd18e76 100644 parent_class->property_activate (engine, prop_name, prop_state); } -diff --git a/src/m17nutil.c b/src/m17nutil.c -index 0b46531..adf7044 100644 ---- a/src/m17nutil.c -+++ b/src/m17nutil.c +Index: ibus-m17n-1.3.4/src/m17nutil.c +=================================================================== +--- ibus-m17n-1.3.4.orig/src/m17nutil.c ++++ ibus-m17n-1.3.4/src/m17nutil.c @@ -18,7 +18,8 @@ typedef enum { ENGINE_CONFIG_SYMBOL_MASK = 1 << 1, ENGINE_CONFIG_LONGNAME_MASK = 1 << 2, @@ -599,7 +599,7 @@ index 0b46531..adf7044 100644 } EngineConfigMask; struct _EngineConfigNode { -@@ -276,6 +277,8 @@ ibus_m17n_get_engine_config (const gchar *engine_name) +@@ -276,6 +277,8 @@ ibus_m17n_get_engine_config (const gchar config->longname = cnode->config.longname; if (cnode->mask & ENGINE_CONFIG_PREEDIT_HIGHLIGHT_MASK) config->preedit_highlight = cnode->config.preedit_highlight; @@ -608,7 +608,7 @@ index 0b46531..adf7044 100644 if (cnode->mask & ENGINE_CONFIG_LAYOUT_MASK) config->layout = cnode->config.layout; } -@@ -333,6 +336,11 @@ ibus_m17n_engine_config_parse_xml_node (EngineConfigNode *cnode, +@@ -333,6 +336,11 @@ ibus_m17n_engine_config_parse_xml_node ( cnode->mask |= ENGINE_CONFIG_PREEDIT_HIGHLIGHT_MASK; continue; } @@ -620,10 +620,10 @@ index 0b46531..adf7044 100644 g_warning (" element contains invalid element <%s>", sub_node->name); } -diff --git a/src/m17nutil.h b/src/m17nutil.h -index 93faad4..3c2944a 100644 ---- a/src/m17nutil.h -+++ b/src/m17nutil.h +Index: ibus-m17n-1.3.4/src/m17nutil.h +=================================================================== +--- ibus-m17n-1.3.4.orig/src/m17nutil.h ++++ ibus-m17n-1.3.4/src/m17nutil.h @@ -25,6 +25,9 @@ struct _IBusM17NEngineConfig { /* whether to highlight preedit */ @@ -634,6 +634,3 @@ index 93faad4..3c2944a 100644 }; typedef struct _IBusM17NEngineConfig IBusM17NEngineConfig; --- -1.7.7.6 - diff --git a/ibus-m17n.spec b/ibus-m17n.spec index b342399..8f8302f 100644 --- a/ibus-m17n.spec +++ b/ibus-m17n.spec @@ -18,15 +18,15 @@ %endif Name: ibus-m17n -Version: 1.3.3 -Release: 12%{?dist} +Version: 1.3.4 +Release: 1%{?dist} Summary: The M17N engine for IBus platform License: GPLv2+ Group: System Environment/Libraries URL: http://code.google.com/p/ibus/ Source0: http://ibus.googlecode.com/files/%{name}-%{version}.tar.gz -Patch0: ibus-m17n-HEAD.patch +# Patch0: ibus-m17n-HEAD.patch Patch1: ibus-m17n-xkb-options.patch Patch2: ibus-m17n-hide-title-status.patch Patch3: ibus-m17n-blacklist-engines.patch @@ -59,7 +59,7 @@ the input table maps from m17n-db. %prep %setup -q -%patch0 -p1 -b .HEAD +#patch0 -p1 -b .HEAD %patch1 -p1 -b .xkb-options %patch2 -p1 -b .hide-title-status %patch3 -p1 -b .blacklist-engines @@ -85,6 +85,9 @@ make DESTDIR=${RPM_BUILD_ROOT} install %{_datadir}/ibus/component/* %changelog +* Fri May 11 2012 Daiki Ueno - 1.3.4-1 +- New upstream release. + * Tue Apr 3 2012 Daiki Ueno - 1.3.3-12 - Check %%{rhel} version in addition to %%{fedora} - Remove unnecessary %%defattr(-,root,root,-) from %%files diff --git a/sources b/sources index 8af2da5..b371e33 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -8fa050df5b2d25095d0e2df51946b0de ibus-m17n-1.3.3.tar.gz +6f644b73c5943e3c7fb2e02b9e259804 ibus-m17n-1.3.4.tar.gz