diff --git a/.gitignore b/.gitignore index 3ed4957..280ad03 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,7 @@ ibus-1.3.6.tar.gz /ibus-1.3.8.tar.gz /ibus-1.3.9.tar.gz /ibus-1.4.0.tar.gz +/ibus-1.4.1.tar.gz /ibus-1.3.99.20101028.tar.gz /ibus-1.3.99.20101118.tar.gz /ibus-1.3.99.20101202.tar.gz @@ -14,6 +15,8 @@ ibus-1.3.6.tar.gz /ibus-1.3.99.20110408.tar.gz /ibus-1.3.99.20110419.tar.gz /ibus-1.3.99.20110817.tar.gz +/ibus-1.4.99.20120203.tar.gz +/ibus-1.4.99.20120317.tar.gz /ibus-gjs-3.0.2.20110823.tar.gz /ibus-gjs-3.1.4.20110823.tar.gz /ibus-gjs-3.0.2.20110908.tar.gz @@ -32,6 +35,5 @@ ibus-1.3.6.tar.gz /ibus-gjs-3.2.1.20111118.tar.gz /ibus-gjs-3.2.1.20111128.tar.gz /ibus-gjs-3.2.1.20111230.tar.gz -/ibus-1.4.1.tar.gz -/ibus-1.4.99.20120203.tar.gz /ibus-gjs-3.3.3.20120203.tar.gz +/ibus-gjs-3.3.92.20120327.tar.gz diff --git a/ibus-530711-preload-sys.patch b/ibus-530711-preload-sys.patch index 941e7e9..0a3aca3 100644 --- a/ibus-530711-preload-sys.patch +++ b/ibus-530711-preload-sys.patch @@ -1,6 +1,6 @@ -From 8f5bb828744532bcfded7e92f3a1db1f26e567e8 Mon Sep 17 00:00:00 2001 +From 145584fdea36439be24cff4a93cc404d092b3762 Mon Sep 17 00:00:00 2001 From: fujiwarat -Date: Fri, 30 Dec 2011 15:46:56 +0900 +Date: Tue, 24 Apr 2012 11:54:53 +0900 Subject: [PATCH] Reload preload engines until users customize the list. The idea is, if users don't customize the preload_engines with ibus-setup, @@ -18,10 +18,10 @@ IBUS_PRELOAD_ENGINE_MODE_USER and users can customize the value 'preload_engines'. --- bus/ibusimpl.c | 412 +++++++++++++++++++++++++++++++++++++++----------- - data/ibus.schemas.in | 15 ++- + data/ibus.schemas.in | 15 +- ibus/common.py | 6 + setup/main.py | 73 ++++++++- - setup/setup.ui | 21 +++- + setup/setup.ui | 21 ++- src/ibustypes.h | 10 ++ 6 files changed, 440 insertions(+), 97 deletions(-) @@ -503,7 +503,7 @@ index 059d660..bba9353 100644 { "general", "use_global_engine", bus_ibus_impl_set_use_global_engine }, { "general", "embed_preedit_text", bus_ibus_impl_set_embed_preedit_text }, diff --git a/data/ibus.schemas.in b/data/ibus.schemas.in -index e0a6a37..2418c95 100644 +index 7e45d36..0701fe2 100644 --- a/data/ibus.schemas.in +++ b/data/ibus.schemas.in @@ -6,7 +6,7 @@ @@ -750,5 +750,5 @@ index d916265..422eb84 100644 * @x: x coordinate. * @y: y coordinate. -- -1.7.7.4 +1.7.10 diff --git a/ibus-541492-xkb.patch b/ibus-541492-xkb.patch index aaf4e47..eb6f702 100644 --- a/ibus-541492-xkb.patch +++ b/ibus-541492-xkb.patch @@ -1,6 +1,6 @@ -From a46c0a18a3e148cbe0b43be9f40f4f769e7efc8c Mon Sep 17 00:00:00 2001 +From 951fb6e0f2914ef0094b66489da3b3240bea0818 Mon Sep 17 00:00:00 2001 From: fujiwarat -Date: Fri, 10 Feb 2012 13:23:19 +0900 +Date: Tue, 24 Apr 2012 11:54:41 +0900 Subject: [PATCH] Add XKB layouts --- @@ -17,7 +17,7 @@ Subject: [PATCH] Add XKB layouts setup/Makefile.am | 1 + setup/enginecombobox.py | 7 +- setup/main.py | 3 + - setup/setup.ui | 609 ++++++- + setup/setup.ui | 609 +++++- setup/xkbsetup.py | 490 +++++ src/Makefile.am | 5 + src/ibus.h | 1 + @@ -85,7 +85,7 @@ index b3ea36a..9efadf7 100644 $(DCONF_DIRS) \ $(NULL) diff --git a/configure.ac b/configure.ac -index a74ce2a..9bd3665 100644 +index 9456397..996e5ce 100644 --- a/configure.ac +++ b/configure.ac @@ -224,6 +224,60 @@ else @@ -2323,7 +2323,7 @@ index 0000000..e777cea + expander.set_data("checked", checked) + diff --git a/src/Makefile.am b/src/Makefile.am -index 68950ff..90fb10f 100644 +index d2fdefc..80fedee 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -186,6 +186,11 @@ typelibs_DATA = $(INTROSPECTION_GIRS:.gir=.typelib) @@ -10163,5 +10163,5 @@ index 0000000..6c00f1d +G_END_DECLS +#endif -- -1.7.7.4 +1.7.10 diff --git a/ibus-HEAD.patch b/ibus-HEAD.patch index 6456c76..0950d08 100644 --- a/ibus-HEAD.patch +++ b/ibus-HEAD.patch @@ -1,6 +1,840 @@ -From 377cf484ea64fc2f30706d298cf1f33debdd9c30 Mon Sep 17 00:00:00 2001 +From 3862735d41168a87d9b77e9ce78ddf228212e015 Mon Sep 17 00:00:00 2001 +From: Daiki Ueno +Date: Mon, 13 Feb 2012 13:56:44 +0900 +Subject: [PATCH] Don't look for ibus-1.0.pc when generating GIR. + +BUG=http://lists.alioth.debian.org/pipermail/pkg-ime-devel/2012-February/001778.html +TEST=manually + +Review URL: https://codereview.appspot.com/5653072 +--- + src/Makefile.am | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/Makefile.am b/src/Makefile.am +index 68950ff..d2fdefc 100644 +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -170,7 +170,7 @@ introspection_files = \ + ibusenumtypes.h \ + $(NULL) + IBus-1.0.gir: $(libibus) Makefile +-IBus_1_0_gir_SCANNERFLAGS = --pkg=ibus-1.0 $(IBUS_GIR_SCANNERFLAGS) ++IBus_1_0_gir_SCANNERFLAGS = --pkg-export=ibus-1.0 $(IBUS_GIR_SCANNERFLAGS) + IBus_1_0_gir_INCLUDES = GLib-2.0 GObject-2.0 Gio-2.0 + IBus_1_0_gir_LIBS = $(libibus) + IBus_1_0_gir_FILES = $(addprefix $(srcdir)/,$(introspection_files)) +-- +1.7.10 + +From a5b51c91cb1185f35f3315ad35e1e03b84264faf Mon Sep 17 00:00:00 2001 From: fujiwarat -Date: Fri, 30 Dec 2011 13:53:50 +0900 +Date: Mon, 13 Feb 2012 16:03:13 +0900 +Subject: [PATCH] Fix typo. + +BUG=http://code.google.com/p/ibus/issues/detail?id=1388 +TEST=Linux desktop + +Review URL: https://codereview.appspot.com/5652077 +--- + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index a74ce2a..9456397 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -149,7 +149,7 @@ AM_CONDITIONAL([ENABLE_GTK2], [test x"$enable_gtk2" = x"yes"]) + # --disable-gtk3 option. + AC_ARG_ENABLE(gtk3, + AS_HELP_STRING([--disable-gtk3], +- [Build gtk3 im module]), ++ [Do not build gtk3 im module]), + [enable_gtk3=$enableval], + [enable_gtk3=yes] + ) +-- +1.7.10 + +From 3b8d6ee8fbd42a8daf3b544e8d0ba17a198a9acf Mon Sep 17 00:00:00 2001 +From: Daiki Ueno +Date: Tue, 14 Feb 2012 10:45:20 +0900 +Subject: [PATCH] Fix typoes in gtk-doc comments. + +BUG=none +TEST=manually + +Review URL: https://codereview.appspot.com/5645095 +--- + src/ibusbus.h | 6 +++--- + src/ibusconfig.h | 52 ++++++++++++++++++++++++------------------------ + src/ibusengine.h | 4 ++-- + src/ibushotkey.h | 2 +- + src/ibusinputcontext.h | 4 ++-- + src/ibusserializable.h | 32 ++++++++++++++--------------- + src/ibusshare.h | 10 +++++----- + 7 files changed, 55 insertions(+), 55 deletions(-) + +diff --git a/src/ibusbus.h b/src/ibusbus.h +index 8f78f87..7c4fdee 100644 +--- a/src/ibusbus.h ++++ b/src/ibusbus.h +@@ -102,9 +102,9 @@ gboolean ibus_bus_is_connected (IBusBus *bus); + /** + * ibus_bus_get_connection: + * @bus: An #IBusBus. +- * @returns: (transfer none): A #GDBusConnection of an #IBusIBus instance. ++ * @returns: (transfer none): A #GDBusConnection of an #IBusBus instance. + * +- * Return #GDBusConnection of an #IBusIBus instance. ++ * Return #GDBusConnection of an #IBusBus instance. + */ + GDBusConnection * + ibus_bus_get_connection (IBusBus *bus); +@@ -112,7 +112,7 @@ GDBusConnection * + /** + * ibus_bus_hello: + * @bus: An #IBusBus. +- * @returns: The unique name of #IBus process in DBus. ++ * @returns: The unique name of IBus process in DBus. + * + * This function sends a "HELLO" message to DBus daemon, + * which replies the unique name of current IBus process. +diff --git a/src/ibusconfig.h b/src/ibusconfig.h +index 07f5ce8..c3e0105 100644 +--- a/src/ibusconfig.h ++++ b/src/ibusconfig.h +@@ -81,10 +81,10 @@ GType ibus_config_get_type (void); + + /** + * ibus_config_new: +- * @connection: An GDBusConnection. +- * @returns: An newly allocated IBusConfig corresponding to @connection. ++ * @connection: A #GDBusConnection. ++ * @returns: An newly allocated #IBusConfig corresponding to @connection. + * +- * New an #IBusConfig from existing GDBusConnection. ++ * New an #IBusConfig from existing #GDBusConnection. + */ + IBusConfig *ibus_config_new (GDBusConnection *connection, + GCancellable *cancellable, +@@ -98,7 +98,7 @@ IBusConfig *ibus_config_new (GDBusConnection *connection, + * The callback should not be %NULL. + * @user_data: The data to pass to callback. + * +- * New an #IBusContext asynchronously. ++ * New an #IBusConfig asynchronously. + */ + void ibus_config_new_async (GDBusConnection *connection, + GCancellable *cancellable, +@@ -121,7 +121,7 @@ IBusConfig *ibus_config_new_async_finish + + /** + * ibus_config_get_value: +- * @config: An IBusConfig ++ * @config: An #IBusConfig + * @section: Section name of the configuration option. + * @name: Name of the configure option. + * @returns: A #GVariant or %NULL. Free with g_variant_unref(). +@@ -135,7 +135,7 @@ IBusConfig *ibus_config_new_async_finish + * + * ibus-chewing, for example, stores its setting in /desktop/ibus/engine/Chewing, + * so the section name for it is "engine/Chewing". +- * @see_also: ibus_config_set_value. ++ * See also: ibus_config_set_value(). + */ + GVariant *ibus_config_get_value (IBusConfig *config, + const gchar *section, +@@ -143,17 +143,17 @@ GVariant *ibus_config_get_value (IBusConfig *config, + + /** + * ibus_config_get_value_async: +- * @config: An IBusConfig ++ * @config: An #IBusConfig + * @section: Section name of the configuration option. + * @name: Name of the configure option. +- * @timeout_msec: The timeout in milliseconds or -1 to use the default timeout. ++ * @timeout_ms: The timeout in milliseconds or -1 to use the default timeout. + * @cancellable: A #GCancellable or %NULL. + * @callback: Callback function to invoke when the return value is ready. + * @user_data: The data to pass to callback. + * + * Get the value of a configuration option asynchronously. + * +- * @see_also: ibus_config_get_value. ++ * See also: ibus_config_get_value(). + */ + void ibus_config_get_value_async (IBusConfig *config, + const gchar *section, +@@ -165,14 +165,14 @@ void ibus_config_get_value_async (IBusConfig *config, + + /** + * ibus_config_get_value_async_finish: +- * @confi: A #IBusConfig. ++ * @config: A #IBusConfig. + * @result: A #GAsyncResult. + * @error: Return location for error or %NULL. + * @returns: A #GVariant or %NULL if error is set. Free with g_variant_unref(). + * + * Finish get value of a configuration option. + * +- * @see_also: ibus_config_get_value_async. ++ * See also: ibus_config_get_value_async(). + */ + GVariant *ibus_config_get_value_async_finish + (IBusConfig *config, +@@ -181,20 +181,20 @@ GVariant *ibus_config_get_value_async_finish + + /** + * ibus_config_get_values: +- * @config: An IBusConfig ++ * @config: An #IBusConfig + * @section: Section name of the configuration option. + * @returns: A #GVariant or %NULL. Free with g_variant_unref(). + * + * Get all values in a section synchronously. + * +- * @see_also: ibus_config_set_value. ++ * See also: ibus_config_set_value(). + */ + GVariant *ibus_config_get_values (IBusConfig *config, + const gchar *section); + + /** + * ibus_config_get_values_async: +- * @config: An IBusConfig ++ * @config: An #IBusConfig + * @section: Section name of the configuration option. + * @timeout_ms: The timeout in milliseconds or -1 to use the default timeout. + * @cancellable: A #GCancellable or %NULL. +@@ -203,7 +203,7 @@ GVariant *ibus_config_get_values (IBusConfig *config, + * + * Get all values in a section asynchronously. + * +- * @see_also: ibus_config_get_values. ++ * See also: ibus_config_get_values(). + */ + void ibus_config_get_values_async(IBusConfig *config, + const gchar *section, +@@ -221,7 +221,7 @@ void ibus_config_get_values_async(IBusConfig *config, + * + * Finish get values in a section. + * +- * @see_also: ibus_config_get_values_async. ++ * See also: ibus_config_get_values_async(). + */ + GVariant *ibus_config_get_values_async_finish + (IBusConfig *config, +@@ -230,15 +230,15 @@ GVariant *ibus_config_get_values_async_finish + + /** + * ibus_config_set_value: +- * @config: An IBusConfig ++ * @config: An #IBusConfig + * @section: Section name of the configuration option. + * @name: Name of the configure option its self. + * @value: A #GVariant that holds the value. If the value is floating, the + * function takes ownership of it. +- * @returns: TRUE if succeed; FALSE otherwise. ++ * @returns: %TRUE if succeed; %FALSE otherwise. + * + * Set the value of a configuration option synchronously. +- * @see_also: ibus_config_get_value. ++ * See also: ibus_config_get_value(). + */ + gboolean ibus_config_set_value (IBusConfig *config, + const gchar *section, +@@ -252,14 +252,14 @@ gboolean ibus_config_set_value (IBusConfig *config, + * @name: Name of the configure option. + * @value: A #GVariant that holds the value. If the value is floating, the + * function takes ownership of it. +- * @timeout_msec: The timeout in milliseconds or -1 to use the default timeout. ++ * @timeout_ms: The timeout in milliseconds or -1 to use the default timeout. + * @cancellable: A #GCancellable or %NULL. + * @callback: Callback function to invoke when the return value is ready. + * @user_data: The data to pass to callback. + * + * Set the value of a configuration option asynchronously. + * +- * @see_also: ibus_config_set_value. ++ * See also: ibus_config_set_value(). + */ + void ibus_config_set_value_async (IBusConfig *config, + const gchar *section, +@@ -272,14 +272,14 @@ void ibus_config_set_value_async (IBusConfig *config, + + /** + * ibus_config_set_value_async_finish: +- * @confi: A #IBusConfig. ++ * @config: A #IBusConfig. + * @result: A #GAsyncResult. + * @error: Return location for error or %NULL. + * @returns: %TRUE or %FALSE if error is set. + * + * Finish set value of a configuration option. + * +- * @see_also: ibus_config_set_value_async. ++ * See also: ibus_config_set_value_async(). + */ + gboolean ibus_config_set_value_async_finish + (IBusConfig *config, +@@ -288,13 +288,13 @@ gboolean ibus_config_set_value_async_finish + + /** + * ibus_config_unset: +- * @config: An IBusConfig ++ * @config: An #IBusConfig + * @section: Section name of the configuration option. + * @name: Name of the configure option its self. +- * @returns: TRUE if succeed; FALSE otherwise. ++ * @returns: %TRUE if succeed; %FALSE otherwise. + * + * Remove an entry of a configuration option. +- * @see_also: ibus_config_get_value. ++ * See also: ibus_config_get_value(). + */ + gboolean ibus_config_unset (IBusConfig *config, + const gchar *section, +diff --git a/src/ibusengine.h b/src/ibusengine.h +index 9ee3462..d2d01a0 100644 +--- a/src/ibusengine.h ++++ b/src/ibusengine.h +@@ -158,8 +158,8 @@ GType ibus_engine_get_type (void); + + /** + * ibus_engine_new: +- * @name: Name of the IBusObject. +- * @path: Path for IBusService. ++ * @engine_name: Name of the IBusObject. ++ * @object_path: Path for IBusService. + * @connection: An opened GDBusConnection. + * @returns: A newly allocated IBusEngine. + * +diff --git a/src/ibushotkey.h b/src/ibushotkey.h +index 9a341f6..65cdc5b 100644 +--- a/src/ibushotkey.h ++++ b/src/ibushotkey.h +@@ -156,7 +156,7 @@ gboolean ibus_hotkey_profile_remove_hotkey_by_event + * + * Emit a ::trigger signal when a hotkey is in a profile. + * +- * @see_also: ::trigger ++ * See also: ::trigger + */ + GQuark ibus_hotkey_profile_filter_key_event + (IBusHotkeyProfile *profile, +diff --git a/src/ibusinputcontext.h b/src/ibusinputcontext.h +index be3c502..f584de3 100644 +--- a/src/ibusinputcontext.h ++++ b/src/ibusinputcontext.h +@@ -283,7 +283,7 @@ gboolean ibus_input_context_process_key_event_async_finish + * + * Pass the key event to input method engine and wait for the reply from ibus (i.e. synchronous IPC). + * +- * @see_also: ibus_input_context_process_key_event_async() ++ * See also: ibus_input_context_process_key_event_async() + */ + gboolean ibus_input_context_process_key_event + (IBusInputContext *context, +@@ -333,7 +333,7 @@ void ibus_input_context_set_capabilities + * + * Activate the property asynchronously. + * +- * @see_also: #IBusEngine::property_activate ++ * See also: #IBusEngine::property_activate + */ + void ibus_input_context_property_activate + (IBusInputContext *context, +diff --git a/src/ibusserializable.h b/src/ibusserializable.h +index 7a100c2..742aeb6 100644 +--- a/src/ibusserializable.h ++++ b/src/ibusserializable.h +@@ -29,8 +29,8 @@ + * @short_description: A serializable object. + * @stability: Stable + * +- * An IBusSerializable is an IBus object which can be serialized, that is, +- * to be to and from an IBusMessage. ++ * An #IBusSerializable is an IBus object which can be serialized, that is, ++ * to be to and from a #GVariant. + * + * This class is to be extended by other class that requires serialization. + * An extended class should overrides following methods: +@@ -85,10 +85,10 @@ + + /** + * ibus_serializable_get_attachment: +- * @o: An IBusSerializable. ++ * @o: An #IBusSerializable. + * @k: String formatted key for indexing value. + * +- * Get a value from attachment of an IBusSerializable. ++ * Get a value from attachment of an #IBusSerializable. + * This macro is an convenient wrapper of ibus_serializable_get_qattachment(). + */ + #define ibus_serializable_get_attachment(o, k) \ +@@ -96,10 +96,10 @@ + + /** + * ibus_serializable_remove_attachment: +- * @o: An IBusSerializable. ++ * @o: An #IBusSerializable. + * @k: String formatted key for indexing value. + * +- * Remove a value from attachment of an IBusSerializable. ++ * Remove a value from attachment of an #IBusSerializable. + * This macro is an convenient wrapper of ibus_serializable_remove_qattachment(). + */ + #define ibus_serializable_remove_attachment(o, k) \ +@@ -131,7 +131,7 @@ struct _IBusSerializable { + * @returns: %TRUE if succeed; %FALSE otherwise. + * + * Prototype of serialize function. +- * Serialize function convert an IBusSerializable to IBusMessageIter. ++ * Serialize function convert an #IBusSerializable to #GVariantBuilder. + * Returns a gboolean value which indicates whether the conversion is success. + * Return %TRUE if succeed. + */ +@@ -145,7 +145,7 @@ typedef gboolean (* IBusSerializableSerializeFunc) (IBusSerializable + * @returns: The number of values in the variant(tuple) are consumed. + * + * Prototype of deserialize function. +- * Deserialize function convert an IBusMessageIter to IBusSerializable. ++ * Deserialize function convert a #GVariant to #IBusSerializable. + * Returns an integer value which indicates how many values in + * the variant(tuple) are consumed. + */ +@@ -155,7 +155,7 @@ typedef gint (* IBusSerializableDeserializeFunc) (IBusSerializable + /** + * IBusSerializableCopyFunc: + * @dest: The destination #IBusSerializable. +- * @src: A source #IBusMessageIter. ++ * @src: A source #IBusSerializable. + * @returns: %TRUE if succeed; %FALSE otherwise. + * + * Prototype of copy function. +@@ -197,10 +197,10 @@ IBusSerializable *ibus_serializable_new (void); + * @key: String formatted key for indexing value. + * @value: Value to be attached or %NULL to remove any prevoius value. + * +- * Attach a value to an IBusSerializable. If the value is floating, ++ * Attach a value to an #IBusSerializable. If the value is floating, + * the serializable will take the ownership. + * +- * @see_also: ibus_serializable_set_attachment(). ++ * See also: ibus_serializable_set_attachment(). + */ + void ibus_serializable_set_qattachment (IBusSerializable *serializable, + GQuark key, +@@ -213,7 +213,7 @@ void ibus_serializable_set_qattachment (IBusSerializable *ser + * @returns: The attached value; or %NULL if fail to retrieve the value. + * + * Get a value from attachment of an #IBusSerializable. +- * @see_also: ibus_serializable_set_attachment(). ++ * See also: ibus_serializable_set_attachment(). + */ + GVariant *ibus_serializable_get_qattachment (IBusSerializable *serializable, + GQuark key); +@@ -224,7 +224,7 @@ GVariant *ibus_serializable_get_qattachment (IBusSerializable *ser + * @key: String formatted key for indexing value. + * + * Remove a value from attachment of an #IBusSerializable. +- * @see_also: ibus_serializable_remove_attachment(). ++ * See also: ibus_serializable_remove_attachment(). + */ + void ibus_serializable_remove_qattachment + (IBusSerializable *serializable, +@@ -238,7 +238,7 @@ void ibus_serializable_remove_qattachment + * Clone an #IBusSerializable. + * The copy method should be implemented in extended class. + * +- * @see_also: IBusSerializableCopyFunc(). ++ * See also: IBusSerializableCopyFunc(). + */ + IBusSerializable *ibus_serializable_copy (IBusSerializable *serializable); + +@@ -250,7 +250,7 @@ IBusSerializable *ibus_serializable_copy (IBusSerializable *ser + * Serialize an #IBusSerializable to a #GVariant. + * The serialize method should be implemented in extended class. + * +- * @see_also: IBusSerializableCopyFunc(). ++ * See also: IBusSerializableCopyFunc(). + */ + GVariant *ibus_serializable_serialize (IBusSerializable *serializable); + +@@ -262,7 +262,7 @@ GVariant *ibus_serializable_serialize (IBusSerializable *ser + * Deserialize a #GVariant to an #IBusSerializable/ + * The deserialize method should be implemented in extended class. + * +- * @see_also: IBusSerializableCopyFunc(). ++ * See also: IBusSerializableCopyFunc(). + */ + IBusSerializable *ibus_serializable_deserialize (GVariant *variant); + +diff --git a/src/ibusshare.h b/src/ibusshare.h +index d1cf237..61db3cd 100644 +--- a/src/ibusshare.h ++++ b/src/ibusshare.h +@@ -188,7 +188,7 @@ void ibus_set_display (const gchar *display); + * Socket file under ~/.config/ibus/bus/ + * + * +- * @see_also: ibus_write_address(). ++ * See also: ibus_write_address(). + */ + const gchar *ibus_get_address (void); + +@@ -198,7 +198,7 @@ const gchar *ibus_get_address (void); + * + * Write D-Bus address to socket file. + * +- * @see_also: ibus_get_address(). ++ * See also: ibus_get_address(). + */ + void ibus_write_address (const gchar *address); + +@@ -302,7 +302,7 @@ void ibus_init (void); + * + * Runs an IBus main loop until ibus_quit() is called in the loop. + * +- * @see_also: ibus_quit(). ++ * See also: ibus_quit(). + */ + void ibus_main (void); + +@@ -312,7 +312,7 @@ void ibus_main (void); + * Stops an IBus from running. + * + * Any calls to ibus_quit() for the loop will return. +- * @see_also: ibus_main(). ++ * See also: ibus_main(). + */ + void ibus_quit (void); + +@@ -325,7 +325,7 @@ void ibus_quit (void); + * + * (ibus-daemon:7088): IBUS-DEBUG: 18:06:45.822819: ibus-daemon started + * +- * If @verbose is TRUE, all levels of messages will be logged. Otherwise, ++ * If @verbose is %TRUE, all levels of messages will be logged. Otherwise, + * DEBUG and WARNING messages will be ignored. The function is used in + * ibus-daemon, but can be useful for IBus client programs as well for + * debugging. It's totally fine for not calling this function. If you +-- +1.7.10 + +From 60587bf804feb7ed4dcb8c1731f115420ca28b49 Mon Sep 17 00:00:00 2001 +From: fujiwarat +Date: Thu, 16 Feb 2012 13:04:05 +0900 +Subject: [PATCH] Fix gir annotations. + +- It seems python does not allow to use 'exec' as a variable. +Renamed 'exec' property so that the constructor in IBus.Component is used. +- It seems the python virtual method is available when the function is +described in header files in case that annotations are needed so +the signal function ibus_factory_create_engine is added newly. + +TEST=Linux desktop + +Review URL: https://codereview.appspot.com/5649082 +--- + src/ibusattribute.h | 8 ++++---- + src/ibuscomponent.c | 20 ++++++++++---------- + src/ibuscomponent.h | 8 ++++---- + src/ibusfactory.c | 20 +++++++++++++++++--- + src/ibusfactory.h | 11 +++++++++++ + 5 files changed, 46 insertions(+), 21 deletions(-) + +diff --git a/src/ibusattribute.h b/src/ibusattribute.h +index 9096ff3..7a7fcb6 100644 +--- a/src/ibusattribute.h ++++ b/src/ibusattribute.h +@@ -130,7 +130,7 @@ GType ibus_attribute_get_type (); + * @value: Value of the attribute. + * @start_index: Where attribute starts. + * @end_index: Where attribute ends. +- * @returns: A newly allocated IBusAttribute. ++ * @returns: (transfer none): A newly allocated IBusAttribute. + * + * New an IBusAttribute. + */ +@@ -182,7 +182,7 @@ guint ibus_attribute_get_end_index + * @underline_type: Type of underline. + * @start_index: Where attribute starts. + * @end_index: Where attribute ends. +- * @returns: A newly allocated #IBusAttribute. ++ * @returns: (transfer none): A newly allocated #IBusAttribute. + * + * New an underline #IBusAttribute. + */ +@@ -194,7 +194,7 @@ IBusAttribute *ibus_attr_underline_new (guint underline_type, + * @color: Color in RGB. + * @start_index: Where attribute starts. + * @end_index: Where attribute ends. +- * @returns: A newly allocated #IBusAttribute. ++ * @returns: (transfer none): A newly allocated #IBusAttribute. + * + * New an foreground #IBusAttribute. + */ +@@ -206,7 +206,7 @@ IBusAttribute *ibus_attr_foreground_new (guint color, + * @color: Color in RGB. + * @start_index: Where attribute starts. + * @end_index: Where attribute ends. +- * @returns: A newly allocated #IBusAttribute. ++ * @returns: (transfer none): A newly allocated #IBusAttribute. + * + * New an background #IBusAttribute. + */ +diff --git a/src/ibuscomponent.c b/src/ibuscomponent.c +index 1c52a23..af8ca4f 100644 +--- a/src/ibuscomponent.c ++++ b/src/ibuscomponent.c +@@ -34,7 +34,7 @@ enum { + PROP_LICENSE, + PROP_AUTHOR, + PROP_HOMEPAGE, +- PROP_EXEC, ++ PROP_COMMAND_LINE, + PROP_TEXTDOMAIN, + }; + +@@ -188,15 +188,15 @@ ibus_component_class_init (IBusComponentClass *class) + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); + + /** +- * IBusComponent:exec: ++ * IBusComponent:command-line: + * + * The exec path of component + */ + g_object_class_install_property (gobject_class, +- PROP_EXEC, +- g_param_spec_string ("exec", +- "component exec", +- "The exec path of component", ++ PROP_COMMAND_LINE, ++ g_param_spec_string ("command-line", ++ "component command-line", ++ "The command line of component", + NULL, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); + +@@ -305,7 +305,7 @@ ibus_component_set_property (IBusComponent *component, + g_assert (component->priv->homepage == NULL); + component->priv->homepage = g_value_dup_string (value); + break; +- case PROP_EXEC: ++ case PROP_COMMAND_LINE: + g_assert (component->priv->exec == NULL); + component->priv->exec = g_value_dup_string (value); + break; +@@ -343,7 +343,7 @@ ibus_component_get_property (IBusComponent *component, + case PROP_HOMEPAGE: + g_value_set_string (value, ibus_component_get_homepage (component)); + break; +- case PROP_EXEC: ++ case PROP_COMMAND_LINE: + g_value_set_string (value, ibus_component_get_exec (component)); + break; + case PROP_TEXTDOMAIN: +@@ -698,7 +698,7 @@ ibus_component_new (const gchar *name, + const gchar *license, + const gchar *author, + const gchar *homepage, +- const gchar *exec, ++ const gchar *command_line, + const gchar *textdomain) + { + return ibus_component_new_varargs ("name", name, +@@ -707,7 +707,7 @@ ibus_component_new (const gchar *name, + "license", license, + "author", author, + "homepage", homepage, +- "exec", exec, ++ "command-line", command_line, + "textdomain", textdomain, + NULL); + } +diff --git a/src/ibuscomponent.h b/src/ibuscomponent.h +index 97a48ec..8f35b94 100644 +--- a/src/ibuscomponent.h ++++ b/src/ibuscomponent.h +@@ -84,7 +84,7 @@ typedef struct _IBusComponentPrivate IBusComponentPrivate; + * license: Distribution license of this component. + * author: Author(s) of the component. + * homepage: Homepage of the component. +- * exec: path to component executable. ++ * command_line: path to component executable. + * textdomain: Domain name for dgettext() + */ + struct _IBusComponent { +@@ -115,7 +115,7 @@ GType ibus_component_get_type (void); + * @license: Distribution license of this component. + * @author: Author(s) of the component. + * @homepage: Homepage of the component. +- * @exec: path to component executable. ++ * @command_line: path to component executable. + * @textdomain: Domain name for dgettext() + * @returns: A newly allocated IBusComponent. + * +@@ -127,7 +127,7 @@ IBusComponent *ibus_component_new (const gchar *name, + const gchar *license, + const gchar *author, + const gchar *homepage, +- const gchar *exec, ++ const gchar *command_line, + const gchar *textdomain); + + /** +@@ -139,7 +139,7 @@ IBusComponent *ibus_component_new (const gchar *name, + * ibus_component_new_varargs() supports the va_list format. + * name property is required. e.g. + * IBusComponent *component = ibus_component_new_varargs ("name", "ibus-foo", +- * "exec", "/usr/libexec/ibus-engine-foo --ibus", ++ * "command_line", "/usr/libexec/ibus-engine-foo --ibus", + * NULL) + */ + IBusComponent *ibus_component_new_varargs (const gchar *first_property_name, +diff --git a/src/ibusfactory.c b/src/ibusfactory.c +index cdcf1a6..ceb7fb9 100644 +--- a/src/ibusfactory.c ++++ b/src/ibusfactory.c +@@ -100,8 +100,8 @@ static const gchar introspection_xml[] = + ""; + + static IBusEngine * +-_ibus_factory_create_engine (IBusFactory *factory, +- const gchar *engine_name) ++ibus_factory_real_create_engine (IBusFactory *factory, ++ const gchar *engine_name) + { + GType engine_type; + gchar *object_path = NULL; +@@ -154,7 +154,7 @@ ibus_factory_class_init (IBusFactoryClass *class) + IBUS_SERVICE_CLASS (class)->service_method_call = ibus_factory_service_method_call; + IBUS_SERVICE_CLASS (class)->service_get_property = ibus_factory_service_get_property; + IBUS_SERVICE_CLASS (class)->service_set_property = ibus_factory_service_set_property; +- class->create_engine = _ibus_factory_create_engine; ++ class->create_engine = ibus_factory_real_create_engine; + + ibus_service_class_add_interfaces (IBUS_SERVICE_CLASS (class), introspection_xml); + +@@ -372,3 +372,17 @@ ibus_factory_add_engine (IBusFactory *factory, + + g_hash_table_insert (factory->priv->engine_table, g_strdup (engine_name), (gpointer) engine_type); + } ++ ++IBusEngine * ++ibus_factory_create_engine (IBusFactory *factory, ++ const gchar *engine_name) ++{ ++ IBusEngine *engine = NULL; ++ ++ g_assert (engine_name != NULL); ++ ++ g_signal_emit (factory, factory_signals[CREATE_ENGINE], ++ 0, engine_name, &engine); ++ ++ return engine; ++} +diff --git a/src/ibusfactory.h b/src/ibusfactory.h +index e5e6fba..dd683d0 100644 +--- a/src/ibusfactory.h ++++ b/src/ibusfactory.h +@@ -168,6 +168,17 @@ void ibus_factory_add_engine (IBusFactory *factory, + const gchar *engine_name, + GType engine_type); + ++/** ++ * ibus_factory_create_engine: ++ * @factory: An #IBusFactory. ++ * @engine_name: Name of an engine. ++ * @returns: (transfer full): #IBusEngine with @engine_name. ++ * ++ * Create an #IBusEngine with @engine_name. ++ */ ++IBusEngine *ibus_factory_create_engine (IBusFactory *factory, ++ const gchar *engine_name); ++ + G_END_DECLS + #endif + +-- +1.7.10 + +From 1b5b4067486212d5cf5d937d40eb18da6941acee Mon Sep 17 00:00:00 2001 +From: fujiwarat +Date: Thu, 23 Feb 2012 12:07:44 +0900 +Subject: [PATCH] Add ibus_unset_log_handler to remove the handler in + ibus_set_log_handler + +TEST=Linux desktop + +Review URL: https://codereview.appspot.com/5690064 +--- + src/ibusshare.c | 19 ++++++++++++++++++- + src/ibusshare.h | 7 +++++++ + 2 files changed, 25 insertions(+), 1 deletion(-) + +diff --git a/src/ibusshare.c b/src/ibusshare.c +index dc7c350..9215369 100644 +--- a/src/ibusshare.c ++++ b/src/ibusshare.c +@@ -354,6 +354,7 @@ ibus_quit (void) + } + + static gboolean ibus_log_handler_is_verbose = FALSE; ++static guint ibus_log_handler_id = 0; + + static void + ibus_log_handler (const gchar *log_domain, +@@ -387,6 +388,22 @@ ibus_log_handler (const gchar *log_domain, + void + ibus_set_log_handler (gboolean verbose) + { ++ if (ibus_log_handler_id != 0) { ++ g_log_remove_handler (G_LOG_DOMAIN, ibus_log_handler_id); ++ } ++ + ibus_log_handler_is_verbose = verbose; +- g_log_set_handler (G_LOG_DOMAIN, G_LOG_LEVEL_MASK, ibus_log_handler, NULL); ++ ibus_log_handler_id = g_log_set_handler (G_LOG_DOMAIN, ++ G_LOG_LEVEL_MASK, ++ ibus_log_handler, ++ NULL); ++} ++ ++void ++ibus_unset_log_handler (void) ++{ ++ if (ibus_log_handler_id != 0) { ++ g_log_remove_handler (G_LOG_DOMAIN, ibus_log_handler_id); ++ ibus_log_handler_id = 0; ++ } + } +diff --git a/src/ibusshare.h b/src/ibusshare.h +index 61db3cd..4ff4128 100644 +--- a/src/ibusshare.h ++++ b/src/ibusshare.h +@@ -334,5 +334,12 @@ void ibus_quit (void); + */ + void ibus_set_log_handler (gboolean verbose); + ++/** ++ * ibus_unset_log_handler: ++ * ++ * Remove the log handler which is set by ibus_set_log_handler. ++ */ ++void ibus_unset_log_handler (void); ++ + G_END_DECLS + #endif +-- +1.7.10 + +From 25ea1a102f01d1ed3cbadf607b01d15d778e2214 Mon Sep 17 00:00:00 2001 +From: fujiwarat +Date: Tue, 24 Apr 2012 23:55:39 +0900 Subject: [PATCH] Fix ibus-x11 SEGV in _process_key_event_done. IMForwardEvent() calls _Xi18nFindClient() and it could return NULL. @@ -8,59 +842,269 @@ Maybe the connect_id would be disconnected during the async process_key_event. This fix checks XIM_DISCONNECT in ims_protocol_handler() to cancel IMForwardEvent() in _process_key_event_done(). + +BUG=RH#769135 +TEST=Linux desktop + +Review URL: https://codereview.appspot.com/6114047 --- - client/x11/main.c | 17 +++++++++++++++++ - 1 files changed, 17 insertions(+), 0 deletions(-) + client/x11/main.c | 50 +++++++++++++++++++++++++++++++++++++++++--------- + 1 file changed, 41 insertions(+), 9 deletions(-) diff --git a/client/x11/main.c b/client/x11/main.c -index 58069fc..3cb03f0 100644 +index 65451ab..8550a53 100644 --- a/client/x11/main.c +++ b/client/x11/main.c -@@ -77,6 +77,8 @@ struct _X11IC { - gint onspot_preedit_length; - }; - -+static gint disconnected_id = 0; -+ - static void _xim_set_cursor_location (X11IC *x11ic); - static void _context_commit_text_cb (IBusInputContext *context, - IBusText *text, -@@ -464,6 +466,12 @@ _process_key_event_done (GObject *object, +@@ -464,6 +464,13 @@ _process_key_event_done (GObject *object, g_error_free (error); } -+ if (pfe->connect_id == disconnected_id) { ++ if (g_hash_table_lookup (_connections, ++ GINT_TO_POINTER ((gint) pfe->connect_id)) ++ == NULL) { + g_slice_free (IMForwardEventStruct, pfe); -+ disconnected_id = 0; + return; + } + if (retval == FALSE) { IMForwardEvent (_xims, (XPointer) pfe); } -@@ -734,6 +742,13 @@ xim_reset_ic (XIMS xims, IMResetICStruct *call_data) +@@ -600,29 +607,52 @@ _free_ic (gpointer data, gpointer user_data) + } + + static int +-xim_close (XIMS ims, IMCloseStruct *call_data) ++_free_x11_iconn_from_id (CARD16 connect_id) + { + X11ICONN *conn; + +- LOG (1, "XIM_CLOSE connect_id=%d", +- call_data->connect_id); +- + conn = (X11ICONN *) g_hash_table_lookup (_connections, +- GINT_TO_POINTER ((gint) call_data->connect_id)); +- g_return_val_if_fail (conn != NULL, 0); ++ GINT_TO_POINTER ((gint) connect_id)); + +- g_list_foreach (conn->clients, _free_ic, NULL); ++ if (conn == NULL) { ++ return 0; ++ } + +- g_list_free (conn->clients); ++ g_list_free_full (conn->clients, (GDestroyNotify) _free_ic); + + g_hash_table_remove (_connections, +- GINT_TO_POINTER ((gint) call_data->connect_id)); ++ GINT_TO_POINTER ((gint) connect_id)); + + g_slice_free (X11ICONN, conn); + return 1; } +static int ++xim_close (XIMS xims, IMCloseStruct *call_data) ++{ ++ CARD16 connect_id = call_data->connect_id; ++ ++ LOG (1, "XIM_CLOSE connect_id=%d", connect_id); ++ ++ return _free_x11_iconn_from_id (connect_id); ++} ++ ++static int +xim_disconnect_ic (XIMS xims, IMDisConnectStruct *call_data) +{ -+ disconnected_id = call_data->connect_id; ++ CARD16 connect_id = call_data->connect_id; ++ ++ LOG (1, "XIM_DISCONNECT connect_id=%d", connect_id); ++ ++ _free_x11_iconn_from_id (connect_id); ++ ++ /* I am not sure if this can return 1 because I have not experienced ++ * that xim_disconnect_ic() is called. But I wish connect_id is ++ * released from _connections to avoid SEGV. */ + return 0; +} + - int - ims_protocol_handler (XIMS xims, IMProtocol *call_data) - { -@@ -773,6 +788,8 @@ ims_protocol_handler (XIMS xims, IMProtocol *call_data) - case XIM_SYNC_REPLY: - LOG (1, "XIM_SYNC_REPLY"); - return 0; + + static void + _xim_set_cursor_location (X11IC *x11ic) +@@ -745,6 +775,8 @@ ims_protocol_handler (XIMS xims, IMProtocol *call_data) + return xim_open (xims, (IMOpenStruct *)call_data); + case XIM_CLOSE: + return xim_close (xims, (IMCloseStruct *)call_data); + case XIM_DISCONNECT: + return xim_disconnect_ic (xims, (IMDisConnectStruct *)call_data); - default: - LOG (1, "Unknown (%d)", call_data->major_code); - return 0; + case XIM_CREATE_IC: + return xim_create_ic (xims, (IMChangeICStruct *)call_data); + case XIM_DESTROY_IC: +-- +1.7.10 + +From 3c5158e43ec7ce36080e1554b94354ad9dd57289 Mon Sep 17 00:00:00 2001 +From: fujiwarat +Date: Wed, 25 Apr 2012 00:07:10 +0900 +Subject: [PATCH] Fix the coordinate in languagebar when dual monitors are + used. + +BUG=http://code.google.com/p/ibus/issues/detail?id=1168 +TEST=Linux desktop + +Review URL: https://codereview.appspot.com/6119046 +--- + ui/gtk/languagebar.py | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/ui/gtk/languagebar.py b/ui/gtk/languagebar.py +index c642d8f..8848652 100644 +--- a/ui/gtk/languagebar.py ++++ b/ui/gtk/languagebar.py +@@ -245,6 +245,9 @@ class LanguageBar(gtk.Toolbar): + + def set_position(self, x, y): + w, h = self.__screen.get_width(), self.__screen.get_height() ++ if self.__screen.get_n_monitors() > 1: ++ rect = self.__screen.get_monitor_geometry(0) ++ w, h = rect.width, rect.height + if x < 0 or y < 0: + x = w - 20 + y = h - 40 +-- +1.7.10 + +From 43ca94c3a5849f35e5beb38b2f3f7ccd9ef2e24d Mon Sep 17 00:00:00 2001 +From: fujiwarat +Date: Thu, 26 Apr 2012 10:31:29 +0900 +Subject: [PATCH] Fix not to send preedit-changed signal when the preedit + is not changed. + +BUG=http://code.google.com/p/ibus/issues/detail?id=1445 +TEST=Linux desktop + +Review URL: https://codereview.appspot.com/6111046 +--- + bus/inputcontext.c | 8 ++++++-- + client/gtk2/ibusimcontext.c | 35 ++++++++++++++++++++--------------- + 2 files changed, 26 insertions(+), 17 deletions(-) + +diff --git a/bus/inputcontext.c b/bus/inputcontext.c +index 3c81688..9b25213 100644 +--- a/bus/inputcontext.c ++++ b/bus/inputcontext.c +@@ -2292,8 +2292,12 @@ new_engine_cb (GObject *obj, + "Opertation was cancelled"); + } + else { +- /* Let BusEngineProxy call a Disable signal. */ +- bus_input_context_disable (data->context); ++ /* Let BusEngineProxy call a Disable signal. ++ * The Disable signal is needed when the engines are switched ++ * but not needed when an engine is enabled initially. */ ++ if (data->context->engine) { ++ bus_input_context_disable (data->context); ++ } + bus_input_context_set_engine (data->context, engine); + g_object_unref (engine); + bus_input_context_enable (data->context); +diff --git a/client/gtk2/ibusimcontext.c b/client/gtk2/ibusimcontext.c +index 72db581..ab1079f 100644 +--- a/client/gtk2/ibusimcontext.c ++++ b/client/gtk2/ibusimcontext.c +@@ -1413,20 +1413,34 @@ _ibus_context_enabled_cb (IBusInputContext *ibuscontext, + } + + static void +-_ibus_context_disabled_cb (IBusInputContext *ibuscontext, +- IBusIMContext *ibusimcontext) ++_ibus_im_context_clear (IBusIMContext *ibusimcontext) + { +- IDEBUG ("%s", __FUNCTION__); ++ gboolean flag = FALSE; ++ + ibusimcontext->enable = FALSE; + + /* clear preedit */ ++ flag = ibusimcontext->preedit_visible; + ibusimcontext->preedit_visible = FALSE; + ibusimcontext->preedit_cursor_pos = 0; ++ flag &= (ibusimcontext->preedit_string != NULL && ++ *ibusimcontext->preedit_string != '\0'); + g_free (ibusimcontext->preedit_string); + ibusimcontext->preedit_string = NULL; + +- g_signal_emit (ibusimcontext, _signal_preedit_changed_id, 0); +- g_signal_emit (ibusimcontext, _signal_preedit_end_id, 0); ++ if (flag) { ++ g_signal_emit (ibusimcontext, _signal_preedit_changed_id, 0); ++ g_signal_emit (ibusimcontext, _signal_preedit_end_id, 0); ++ } ++} ++ ++static void ++_ibus_context_disabled_cb (IBusInputContext *ibuscontext, ++ IBusIMContext *ibusimcontext) ++{ ++ IDEBUG ("%s", __FUNCTION__); ++ ++ _ibus_im_context_clear (ibusimcontext); + } + + static void +@@ -1439,16 +1453,7 @@ _ibus_context_destroy_cb (IBusInputContext *ibuscontext, + g_object_unref (ibusimcontext->ibuscontext); + ibusimcontext->ibuscontext = NULL; + +- ibusimcontext->enable = FALSE; +- +- /* clear preedit */ +- ibusimcontext->preedit_visible = FALSE; +- ibusimcontext->preedit_cursor_pos = 0; +- g_free (ibusimcontext->preedit_string); +- ibusimcontext->preedit_string = NULL; +- +- g_signal_emit (ibusimcontext, _signal_preedit_changed_id, 0); +- g_signal_emit (ibusimcontext, _signal_preedit_end_id, 0); ++ _ibus_im_context_clear (ibusimcontext); + } + + static void +-- +1.7.10 + +From 19c6e141b8612792e5606b79b35a4c675e691c20 Mon Sep 17 00:00:00 2001 +From: fujiwarat +Date: Fri, 27 Apr 2012 11:27:03 +0900 +Subject: [PATCH] Enable to fall back /etc/machine-id + +http://cgit.freedesktop.org/dbus/dbus/commit/dbus/dbus-sysdeps-unix.c?id=66e52541d5bdd4927a5c702963749760643313f4 + +BUG=http://code.google.com/p/ibus/issues/detail?id=1389 +TEST=Linux desktop + +Review URL: https://codereview.appspot.com/6111060 +--- + src/ibusshare.c | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/src/ibusshare.c b/src/ibusshare.c +index 9215369..82d39b8 100644 +--- a/src/ibusshare.c ++++ b/src/ibusshare.c +@@ -44,7 +44,11 @@ ibus_get_local_machine_id (void) + if (!g_file_get_contents ("/var/lib/dbus/machine-id", + &machine_id, + NULL, +- &error)) { ++ &error) && ++ !g_file_get_contents ("/etc/machine-id", ++ &machine_id, ++ NULL, ++ NULL)) { + g_warning ("Unable to load /var/lib/dbus/machine-id: %s", error->message); + g_error_free (error); + machine_id = "machine-id"; -- -1.7.7.4 +1.7.10 diff --git a/ibus-xx-bridge-hotkey.patch b/ibus-xx-bridge-hotkey.patch index c3d864f..b21c3bd 100644 --- a/ibus-xx-bridge-hotkey.patch +++ b/ibus-xx-bridge-hotkey.patch @@ -1,20 +1,20 @@ -From 18ad10e6dd89a0327fa29535f03fa51b953e7635 Mon Sep 17 00:00:00 2001 +From 449cff04a5da4d894ba603d516034c9065d80c54 Mon Sep 17 00:00:00 2001 From: fujiwarat -Date: Mon, 28 Nov 2011 12:23:06 +0900 +Date: Tue, 24 Apr 2012 12:02:43 +0900 Subject: [PATCH] Add a bridge hotkey which use prev-next engines instead of on-off. --- bus/Makefile.am | 20 +- - bus/ibusimpl.c | 598 +++++++++++++++++++++++++++++++++++---- + bus/ibusimpl.c | 590 +++++++++++++++++++++++++++++++++++---- bus/inputcontext.c | 81 ++++++ bus/inputcontext.h | 22 ++ bus/registry.c | 61 ++++ bus/registry.h | 10 + configure.ac | 31 ++ data/Makefile.am | 6 +- - data/ibus.schemas.in | 298 ------------------- - data/ibus.schemas.in.in | 311 ++++++++++++++++++++ + data/ibus.schemas.in | 311 --------------------- + data/ibus.schemas.in.in | 324 +++++++++++++++++++++ ibus/_config.py.in | 6 + ibus/inputcontext.py | 17 +- ibus/interface/iinputcontext.py | 7 +- @@ -32,9 +32,9 @@ Subject: [PATCH] Add a bridge hotkey which use prev-next engines instead src/ibusutil.h | 14 + ui/gtk/panel.py | 335 ++++++++++++++++++++-- xkb/Makefile.am | 2 + - xkb/ibus-engine-xkb-main.c | 16 + + xkb/ibus-engine-xkb-main.c | 16 ++ xkb/xkbxml.c | 10 +- - 29 files changed, 1653 insertions(+), 407 deletions(-) + 29 files changed, 1658 insertions(+), 420 deletions(-) delete mode 100644 data/ibus.schemas.in create mode 100644 data/ibus.schemas.in.in @@ -70,7 +70,7 @@ index 074b456..0efaa1b 100644 AM_LDADD = \ @GOBJECT2_LIBS@ \ diff --git a/bus/ibusimpl.c b/bus/ibusimpl.c -index 059d660..67761fb 100644 +index 059d660..15d28cd 100644 --- a/bus/ibusimpl.c +++ b/bus/ibusimpl.c @@ -20,12 +20,17 @@ @@ -392,7 +392,7 @@ index 059d660..67761fb 100644 #else _set_preload_engines (ibus, value); #endif -@@ -1216,6 +1472,53 @@ _find_engine_desc_by_name (BusIBusImpl * +@@ -1216,6 +1472,50 @@ _find_engine_desc_by_name (BusIBusImpl * return NULL; } @@ -404,19 +404,16 @@ index 059d660..67761fb 100644 + + /* If the user customized the trigger key, the trigger key is used for + * any IBus engines. */ -+ if (_bridge_trigger_keys != NULL && -+ *_bridge_trigger_keys != '\0' && -+ g_strcmp0 (_bridge_trigger_keys, "Control+space") != 0) { -+ ++ if (g_strcmp0 (_bridge_trigger_keys, "Control+space") != 0) { + hotkeys = (const gchar *) _bridge_trigger_keys; + } else if (desc) { + hotkeys = ibus_engine_desc_get_hotkeys (desc); -+ } + -+ /* If engine hotkeys are not defined in the compose xml file, -+ * IBus trigger keys are used. */ -+ if (!hotkeys || !*hotkeys) { ++ /* If engine hotkeys are not defined in the compose xml file, ++ * IBus trigger keys are used. */ ++ if (!hotkeys || !*hotkeys) { + hotkeys = (const gchar *) _bridge_trigger_keys; ++ } + } + + return hotkeys; @@ -446,7 +443,7 @@ index 059d660..67761fb 100644 /** * _context_request_engine_cb: * -@@ -1226,7 +1529,53 @@ _context_request_engine_cb (BusInputCont +@@ -1226,7 +1526,53 @@ _context_request_engine_cb (BusInputCont const gchar *engine_name, BusIBusImpl *ibus) { @@ -501,7 +498,7 @@ index 059d660..67761fb 100644 } /** -@@ -1265,8 +1614,13 @@ bus_ibus_impl_get_engine_desc (BusIBusIm +@@ -1265,8 +1611,13 @@ bus_ibus_impl_get_engine_desc (BusIBusIm if (!desc) { if (ibus->register_engine_list) { desc = (IBusEngineDesc *) ibus->register_engine_list->data; @@ -516,7 +513,7 @@ index 059d660..67761fb 100644 desc = (IBusEngineDesc *) ibus->engine_list->data; } } -@@ -1311,9 +1665,20 @@ bus_ibus_impl_context_request_rotate_eng +@@ -1311,9 +1662,20 @@ bus_ibus_impl_context_request_rotate_eng desc = bus_engine_proxy_get_desc (engine); p = g_list_find (ibus->register_engine_list, desc); @@ -537,7 +534,7 @@ index 059d660..67761fb 100644 } else { p = p->prev; } -@@ -1343,11 +1708,25 @@ bus_ibus_impl_context_request_rotate_eng +@@ -1343,11 +1705,25 @@ bus_ibus_impl_context_request_rotate_eng if (p == NULL && g_list_find (ibus->engine_list, desc) != NULL) { if (is_next) { p = ibus->register_engine_list; @@ -563,7 +560,7 @@ index 059d660..67761fb 100644 if (p == NULL) { p = g_list_last (ibus->engine_list); } -@@ -1358,14 +1737,31 @@ bus_ibus_impl_context_request_rotate_eng +@@ -1358,14 +1734,31 @@ bus_ibus_impl_context_request_rotate_eng next_desc = (IBusEngineDesc*) p->data; } else { @@ -595,7 +592,7 @@ index 059d660..67761fb 100644 bus_ibus_impl_set_context_engine_from_desc (ibus, context, next_desc); } -@@ -1387,7 +1783,9 @@ bus_ibus_impl_context_request_previous_e +@@ -1387,7 +1780,9 @@ bus_ibus_impl_context_request_previous_e if (!ibus->global_previous_engine_name) { ibus->global_previous_engine_name = bus_ibus_impl_load_global_previous_engine_name_from_config (ibus); } @@ -605,7 +602,7 @@ index 059d660..67761fb 100644 if (engine_name != NULL) { /* If the previous engine is removed from the engine list or the current engine and the previous engine are the same one, force -@@ -1448,6 +1846,9 @@ bus_ibus_impl_set_focused_context (BusIB +@@ -1448,6 +1843,9 @@ bus_ibus_impl_set_focused_context (BusIB BusEngineProxy *engine = NULL; gboolean is_enabled = FALSE; @@ -615,7 +612,7 @@ index 059d660..67761fb 100644 if (ibus->focused_context) { if (ibus->use_global_engine) { -@@ -1455,6 +1856,9 @@ bus_ibus_impl_set_focused_context (BusIB +@@ -1455,6 +1853,9 @@ bus_ibus_impl_set_focused_context (BusIB engine = bus_input_context_get_engine (ibus->focused_context); if (engine) { is_enabled = bus_input_context_is_enabled (ibus->focused_context); @@ -625,7 +622,7 @@ index 059d660..67761fb 100644 g_object_ref (engine); bus_input_context_set_engine (ibus->focused_context, NULL); } -@@ -1479,6 +1883,9 @@ bus_ibus_impl_set_focused_context (BusIB +@@ -1479,6 +1880,9 @@ bus_ibus_impl_set_focused_context (BusIB if (is_enabled) { bus_input_context_enable (context); } @@ -635,7 +632,7 @@ index 059d660..67761fb 100644 g_object_unref (engine); } -@@ -1708,6 +2115,25 @@ _context_disabled_cb (BusInputContext +@@ -1708,6 +2112,25 @@ _context_disabled_cb (BusInputContext } /** @@ -661,7 +658,7 @@ index 059d660..67761fb 100644 * bus_ibus_impl_create_input_context: * @client: A name of a client. e.g. "gtk-im" * @returns: A BusInputContext object. -@@ -1735,6 +2161,7 @@ bus_ibus_impl_create_input_context (BusI +@@ -1735,6 +2158,7 @@ bus_ibus_impl_create_input_context (BusI { "destroy", G_CALLBACK (_context_destroy_cb) }, { "enabled", G_CALLBACK (_context_enabled_cb) }, { "disabled", G_CALLBACK (_context_disabled_cb) }, @@ -669,7 +666,7 @@ index 059d660..67761fb 100644 }; gint i; -@@ -2312,6 +2739,9 @@ bus_ibus_impl_filter_keyboard_shortcuts +@@ -2312,6 +2736,9 @@ bus_ibus_impl_filter_keyboard_shortcuts GQuark event; GList *engine_list; @@ -679,7 +676,7 @@ index 059d660..67761fb 100644 if (trigger == 0) { trigger = g_quark_from_static_string ("trigger"); -@@ -2377,6 +2807,12 @@ bus_ibus_impl_filter_keyboard_shortcuts +@@ -2377,6 +2804,12 @@ bus_ibus_impl_filter_keyboard_shortcuts return FALSE; } @@ -692,7 +689,7 @@ index 059d660..67761fb 100644 /* Then try engines hotkeys. */ event = ibus_hotkey_profile_filter_key_event (ibus->engines_hotkey_profile, keyval, -@@ -2398,6 +2834,24 @@ bus_ibus_impl_filter_keyboard_shortcuts +@@ -2398,6 +2831,24 @@ bus_ibus_impl_filter_keyboard_shortcuts g_assert (new_engine_desc); @@ -717,7 +714,7 @@ index 059d660..67761fb 100644 /* Find out what engine we should switch to. If the current engine has * the same hotkey, then we should switch to the next engine with the * same hotkey in the list. Otherwise, we just switch to the first -@@ -2409,8 +2863,43 @@ bus_ibus_impl_filter_keyboard_shortcuts +@@ -2409,8 +2860,43 @@ bus_ibus_impl_filter_keyboard_shortcuts break; } } @@ -734,15 +731,15 @@ index 059d660..67761fb 100644 + !bus_input_context_inited_engine (context)) { + return FALSE; + } - - if (current_engine_desc != new_engine_desc) { ++ ++ if (current_engine_desc != new_engine_desc) { + if (current_engine_desc) { + if (context) { + bus_input_context_set_prev_hotkey_engine (context, + current_engine_desc); + } + } -+ + + /* If the current engine is the defualt bridge engine, + * the current engine is not included in engine_list. + * E.g. prev is Ctrl+space and Zenaku and current is Ctrl+space. @@ -756,12 +753,12 @@ index 059d660..67761fb 100644 + new_engine_desc); + } +#else -+ if (current_engine_desc != new_engine_desc) { + if (current_engine_desc != new_engine_desc) { +#endif bus_ibus_impl_set_context_engine_from_desc (ibus, context, new_engine_desc); } -@@ -2514,59 +3003,54 @@ static void +@@ -2514,59 +3000,49 @@ static void _add_engine_hotkey (IBusEngineDesc *engine, BusIBusImpl *ibus) { const gchar *hotkeys; @@ -787,21 +784,6 @@ index 059d660..67761fb 100644 } - hotkey_list = g_strsplit_set (hotkeys, ";,", 0); -- -- for (p = hotkey_list; p && *p; ++p) { -- hotkey = g_strstrip (*p); -- if (!*hotkey || !ibus_key_event_from_string (hotkey, &keyval, &modifiers)) { -- continue; -- } -- -- /* If the hotkey already exists, we won't need to add it again. */ -- event = ibus_hotkey_profile_lookup_hotkey (ibus->engines_hotkey_profile, -- keyval, modifiers); -- if (event == 0) { -- event = g_quark_from_string (hotkey); -- ibus_hotkey_profile_add_hotkey (ibus->engines_hotkey_profile, -- keyval, modifiers, event); -- } + /* Do not register hotkeys for the default keymap engines + * but register hotkeys for only input-method engines + * in 'RegisterComponent' dbus method. @@ -813,37 +795,47 @@ index 059d660..67761fb 100644 + return; + } -- engine_list = g_hash_table_lookup (ibus->hotkey_to_engines_map, -- GUINT_TO_POINTER (event)); +- for (p = hotkey_list; p && *p; ++p) { +- hotkey = g_strstrip (*p); +- if (!*hotkey || !ibus_key_event_from_string (hotkey, &keyval, &modifiers)) { +- continue; +- } + /* If the user customized the trigger key, the trigger key is used for + * any IBus engines. */ -+ if (_bridge_trigger_keys != NULL && -+ *_bridge_trigger_keys != '\0' && -+ g_strcmp0 (_bridge_trigger_keys, "Control+space") != 0) { - -- /* As we will rebuild the engines hotkey map whenever an engine was -- * added or removed, we don't need to hold a reference of the engine -- * here. */ -- engine_list = g_list_append (engine_list, engine); ++ if (g_strcmp0 (_bridge_trigger_keys, "Control+space") != 0) { + hotkeys = (const gchar *) _bridge_trigger_keys; + } else { + hotkeys = ibus_engine_desc_get_hotkeys (engine); + +- /* If the hotkey already exists, we won't need to add it again. */ +- event = ibus_hotkey_profile_lookup_hotkey (ibus->engines_hotkey_profile, +- keyval, modifiers); +- if (event == 0) { +- event = g_quark_from_string (hotkey); +- ibus_hotkey_profile_add_hotkey (ibus->engines_hotkey_profile, +- keyval, modifiers, event); ++ /* If engine hotkeys are not defined in the compose xml file, ++ * IBus trigger keys are used. */ ++ if (!hotkeys || !*hotkeys) { ++ hotkeys = (const gchar *) _bridge_trigger_keys; + } + } +#else + hotkeys = ibus_engine_desc_get_hotkeys (engine); +#endif +- engine_list = g_hash_table_lookup (ibus->hotkey_to_engines_map, +- GUINT_TO_POINTER (event)); +- +- /* As we will rebuild the engines hotkey map whenever an engine was +- * added or removed, we don't need to hold a reference of the engine +- * here. */ +- engine_list = g_list_append (engine_list, engine); +- - /* We need to steal the value before adding it back, otherwise it will - * be destroyed. */ - g_hash_table_steal (ibus->hotkey_to_engines_map, GUINT_TO_POINTER (event)); -+#if USE_BRIDGE_HOTKEY -+ /* If engine hotkeys are not defined in the compose xml file, IBus trigger -+ * keys are used. */ -+ if (!hotkeys || !*hotkeys) { -+ hotkeys = (const gchar *) _bridge_trigger_keys; -+ } -+#endif - +- - g_hash_table_insert (ibus->hotkey_to_engines_map, - GUINT_TO_POINTER (event), engine_list); + if (!hotkeys || !*hotkeys) { @@ -1269,7 +1261,7 @@ index 8979515..2a2b459 /desktop/ibus/panel/show ibus diff --git a/ibus/_config.py.in b/ibus/_config.py.in -index a830136..4c3c980 100644 +index 098d805..10c805e 100644 --- a/ibus/_config.py.in +++ b/ibus/_config.py.in @@ -25,6 +25,8 @@ __all__ = ( @@ -1400,7 +1392,7 @@ index f620361..664dc99 100644 self.__emit_changed() diff --git a/setup/main.py b/setup/main.py -index 7f4a040..a773944 100644 +index 97e05a4..c9c964f 100644 --- a/setup/main.py +++ b/setup/main.py @@ -213,6 +213,22 @@ class Setup(object): @@ -1463,7 +1455,7 @@ index 7f4a040..a773944 100644 if section == 'general' and name == 'preload_engines': engines = self.__get_engine_descs_from_names(value) diff --git a/setup/setup.ui b/setup/setup.ui -index f1e6d0b..671b84c 100644 +index 57cb597..0d53227 100644 --- a/setup/setup.ui +++ b/setup/setup.ui @@ -100,6 +100,7 @@ @@ -1580,7 +1572,7 @@ index f1e6d0b..671b84c 100644 diff --git a/src/Makefile.am b/src/Makefile.am -index 6454522..319df3c 100644 +index 80fedee..d9795b1 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -38,14 +38,16 @@ INTROSPECTION_GIRS = @@ -1628,7 +1620,7 @@ index 32f8338..bef7dfc 100644 + g_tree_foreach (priv->hotkeys, func, user_data); +} diff --git a/src/ibushotkey.h b/src/ibushotkey.h -index 9a341f6..92ec6af 100644 +index 65cdc5b..e80b1a3 100644 --- a/src/ibushotkey.h +++ b/src/ibushotkey.h @@ -179,5 +179,16 @@ GQuark ibus_hotkey_profile_lookup_hotkey @@ -1649,7 +1641,7 @@ index 9a341f6..92ec6af 100644 G_END_DECLS #endif diff --git a/src/ibusinputcontext.c b/src/ibusinputcontext.c -index 54e30ae..c37a71d 100644 +index 54e30ae..a9a21b4 100644 --- a/src/ibusinputcontext.c +++ b/src/ibusinputcontext.c @@ -1219,6 +1219,33 @@ ibus_input_context_set_engine (IBusInputContext *context, @@ -1687,7 +1679,7 @@ index 54e30ae..c37a71d 100644 void \ ibus_input_context_##name (IBusInputContext *context) \ diff --git a/src/ibusinputcontext.h b/src/ibusinputcontext.h -index be3c502..40b902e 100644 +index f584de3..547263f 100644 --- a/src/ibusinputcontext.h +++ b/src/ibusinputcontext.h @@ -495,6 +495,18 @@ void ibus_input_context_set_engine (IBusInputContext *context, @@ -1753,7 +1745,7 @@ index 7cf1995..a19d16e 100644 + #endif diff --git a/ui/gtk/panel.py b/ui/gtk/panel.py -index 8804634..549393a 100644 +index a202d13..03942f3 100644 --- a/ui/gtk/panel.py +++ b/ui/gtk/panel.py @@ -67,6 +67,7 @@ class Panel(ibus.PanelBase): @@ -2201,7 +2193,7 @@ index 8804634..549393a 100644 return engine.layout else: diff --git a/xkb/Makefile.am b/xkb/Makefile.am -index ad9cdd9..c4d5afb 100644 +index b4d8ba2..c19f596 100644 --- a/xkb/Makefile.am +++ b/xkb/Makefile.am @@ -28,6 +28,8 @@ INCLUDES = \ @@ -2214,7 +2206,7 @@ index ad9cdd9..c4d5afb 100644 noinst_PROGRAMS = $(TESTS) diff --git a/xkb/ibus-engine-xkb-main.c b/xkb/ibus-engine-xkb-main.c -index 0fb0f0c..4787bf2 100644 +index dbfffaa..a113d2e 100644 --- a/xkb/ibus-engine-xkb-main.c +++ b/xkb/ibus-engine-xkb-main.c @@ -290,6 +290,9 @@ print_component () @@ -2290,5 +2282,5 @@ index d59a929..86bcf8f 100644 g_free (name); -- -1.7.5.4 +1.7.10 diff --git a/ibus-xx-setup-frequent-lang.patch b/ibus-xx-setup-frequent-lang.patch index 67d7e0b..9f27495 100644 --- a/ibus-xx-setup-frequent-lang.patch +++ b/ibus-xx-setup-frequent-lang.patch @@ -1,17 +1,17 @@ -From 6937ff7453a352dc63a6487c7726acdb8942f8c9 Mon Sep 17 00:00:00 2001 +From 4efc2864320fbcac797976b981e5afca036bedc1 Mon Sep 17 00:00:00 2001 From: fujiwarat -Date: Fri, 5 Aug 2011 20:23:07 +0900 +Date: Tue, 24 Apr 2012 11:55:01 +0900 Subject: [PATCH] Enable ibus-setup to show the frequently used languages only in IME list. --- data/ibus.schemas.in.in | 168 +++++++++++++++++++++++++++++++++++++++++++++++ - setup/enginecombobox.py | 153 ++++++++++++++++++++++++++++++++++++------ + setup/enginecombobox.py | 153 +++++++++++++++++++++++++++++++++++------- setup/main.py | 1 + 3 files changed, 300 insertions(+), 22 deletions(-) diff --git a/data/ibus.schemas.in.in b/data/ibus.schemas.in.in -index 2df4f19..692664b 100644 +index 0701fe2..b2e34c3 100644 --- a/data/ibus.schemas.in.in +++ b/data/ibus.schemas.in.in @@ -240,6 +240,174 @@ @@ -419,7 +419,7 @@ index 7383177..bff2407 100644 return self.__title diff --git a/setup/main.py b/setup/main.py -index 192fb88..5a0170d 100644 +index 7d734ae..c8d7b60 100644 --- a/setup/main.py +++ b/setup/main.py @@ -227,6 +227,7 @@ class Setup(object): @@ -431,5 +431,5 @@ index 192fb88..5a0170d 100644 engines = self.__bus.list_active_engines() -- -1.7.5.4 +1.7.10 diff --git a/ibus.spec b/ibus.spec index 0acd358..56cb5bf 100644 --- a/ibus.spec +++ b/ibus.spec @@ -38,7 +38,7 @@ Name: ibus Version: 1.4.1 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Intelligent Input Bus for Linux OS License: LGPLv2+ Group: System Environment/Libraries @@ -451,6 +451,13 @@ fi %{_datadir}/gtk-doc/html/* %changelog +* Fri Apr 27 2012 Takao Fujiwara - 1.4.1-2 +- Updated ibus-HEAD.patch from upstream + Fixed Bug 813125 - Do not send preedit-changed signal without preedit. + Fixed the coordinate in languagebar when dual monitors are used. +- Updated ibus-xx-bridge-hotkey.patch + Fixed Bug 813971 - no Ctrl+Space + * Thu Feb 09 2012 Takao Fujiwara - 1.4.1-1 - Updated to 1.4.1