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: 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. 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 | 50 +++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 41 insertions(+), 9 deletions(-) diff --git a/client/x11/main.c b/client/x11/main.c index 65451ab..8550a53 100644 --- a/client/x11/main.c +++ b/client/x11/main.c @@ -464,6 +464,13 @@ _process_key_event_done (GObject *object, g_error_free (error); } + if (g_hash_table_lookup (_connections, + GINT_TO_POINTER ((gint) pfe->connect_id)) + == NULL) { + g_slice_free (IMForwardEventStruct, pfe); + return; + } + if (retval == FALSE) { IMForwardEvent (_xims, (XPointer) pfe); } @@ -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) +{ + 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; +} + 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); 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.10