ibus/ibus-HEAD.patch
2011-01-26 17:49:49 +09:00

957 lines
38 KiB
Diff

From d26f418a3df4a9ad78dd952d997e028ba24c88f9 Mon Sep 17 00:00:00 2001
From: Yusuke Sato <yusukes@chromium.org>
Date: Mon, 24 Jan 2011 10:56:05 +0900
Subject: [PATCH] Add <signal name='ValueChanged'> to introspection_xml in src/ibusconfigservice.c.
I don't think that GDBus library in glib-2.26.[01] uses the information to filter out undefined signals, but just in case.
BUG=none
TEST=manually
Review URL: http://codereview.appspot.com/4015043
---
src/ibusconfigservice.c | 5 +++++
1 files changed, 5 insertions(+), 0 deletions(-)
diff --git a/src/ibusconfigservice.c b/src/ibusconfigservice.c
index 5374a76..6420730 100644
--- a/src/ibusconfigservice.c
+++ b/src/ibusconfigservice.c
@@ -103,6 +103,11 @@ static const gchar introspection_xml[] =
" <arg direction='in' type='s' name='section' />"
" <arg direction='in' type='s' name='name' />"
" </method>"
+ " <signal name='ValueChanged'>"
+ " <arg type='s' name='section' />"
+ " <arg type='s' name='name' />"
+ " <arg type='v' name='value' />"
+ " </signal>"
" </interface>"
"</node>";
--
1.7.3.2
From f28d3e30cb04dc0eee5a657469f2c8d49d7056e0 Mon Sep 17 00:00:00 2001
From: fujiwarat <takao.fujiwara1@gmail.com>
Date: Mon, 24 Jan 2011 12:25:48 +0900
Subject: [PATCH] Set GdkEventKey time for gdk_event_put with IBUS_FORWARD_MASK.
---
client/gtk2/ibusimcontext.c | 35 +++++++++++++++++++++++++++++++++--
1 files changed, 33 insertions(+), 2 deletions(-)
diff --git a/client/gtk2/ibusimcontext.c b/client/gtk2/ibusimcontext.c
index fb6fb2d..009d05d 100644
--- a/client/gtk2/ibusimcontext.c
+++ b/client/gtk2/ibusimcontext.c
@@ -59,8 +59,8 @@ struct _IBusIMContext {
GdkRectangle cursor_area;
gboolean has_focus;
+ guint32 time;
gint caps;
-
};
struct _IBusIMContextClass {
@@ -307,6 +307,10 @@ _key_snooper_cb (GtkWidget *widget,
} while (0);
+ if (ibusimcontext != NULL) {
+ ibusimcontext->time = event->time;
+ }
+
switch (event->type) {
case GDK_KEY_RELEASE:
retval = ibus_input_context_process_key_event (ibuscontext,
@@ -458,6 +462,7 @@ ibus_im_context_init (GObject *obj)
ibusimcontext->ibuscontext = NULL;
ibusimcontext->has_focus = FALSE;
+ ibusimcontext->time = GDK_CURRENT_TIME;
ibusimcontext->caps = IBUS_CAP_PREEDIT_TEXT | IBUS_CAP_FOCUS | IBUS_CAP_SURROUNDING_TEXT;
@@ -550,6 +555,10 @@ ibus_im_context_filter_keypress (GtkIMContext *context,
if (ibusimcontext->client_window == NULL && event->window != NULL)
gtk_im_context_set_client_window ((GtkIMContext *)ibusimcontext, event->window);
+ if (ibusimcontext != NULL) {
+ ibusimcontext->time = event->time;
+ }
+
switch (event->type) {
case GDK_KEY_RELEASE:
retval = ibus_input_context_process_key_event (ibusimcontext->ibuscontext,
@@ -892,7 +901,29 @@ _create_gdk_event (IBusIMContext *ibusimcontext,
event->window = g_object_ref (ibusimcontext->client_window);
else if (_input_window)
event->window = g_object_ref (_input_window);
- event->time = GDK_CURRENT_TIME;
+
+ /* The time is copied the latest value from the previous
+ * GdkKeyEvent in filter_keypress().
+ *
+ * We understand the best way would be to pass the all time value
+ * to IBus functions process_key_event() and IBus DBus functions
+ * ProcessKeyEvent() in IM clients and IM engines so that the
+ * _create_gdk_event() could get the correct time values.
+ * However it would causes to change many functions and the time value
+ * would not provide the useful meanings for each IBus engines but just
+ * pass the original value to ForwardKeyEvent().
+ * We use the saved value at the moment.
+ *
+ * Another idea might be to have the time implementation in X servers
+ * but some Xorg uses clock_gettime() and others use gettimeofday()
+ * and the values would be different in each implementation and
+ * locale/remote X server. So probably that idea would not work. */
+ if (ibusimcontext) {
+ event->time = ibusimcontext->time;
+ } else {
+ event->time = GDK_CURRENT_TIME;
+ }
+
event->send_event = FALSE;
event->state = state;
event->keyval = keyval;
--
1.7.3.2
From 73135d06d2195cee5630918e48003347315eb653 Mon Sep 17 00:00:00 2001
From: fujiwarat <takao.fujiwara1@gmail.com>
Date: Wed, 26 Jan 2011 14:01:17 +0900
Subject: [PATCH] Add signals in IBusPanelService for non-C classes.
---
src/ibuspanelservice.c | 525 ++++++++++++++++++++++++++++++++++++++++++++----
src/ibuspanelservice.h | 4 +-
2 files changed, 492 insertions(+), 37 deletions(-)
diff --git a/src/ibuspanelservice.c b/src/ibuspanelservice.c
index df949c5..f027390 100644
--- a/src/ibuspanelservice.c
+++ b/src/ibuspanelservice.c
@@ -21,8 +21,33 @@
*/
#include "ibusshare.h"
#include "ibuspanelservice.h"
+#include "ibusmarshalers.h"
+#include "ibusinternal.h"
enum {
+ UPDATE_PREEDIT_TEXT,
+ UPDATE_AUXILIARY_TEXT,
+ UPDATE_LOOKUP_TABLE,
+ FOCUS_IN,
+ FOCUS_OUT,
+ REGISTER_PROPERTIES,
+ UPDATE_PROPERTY,
+ SET_CURSOR_LOCATION,
+ CURSOR_UP_LOOKUP_TABLE,
+ CURSOR_DOWN_LOOKUP_TABLE,
+ HIDE_AUXILIARY_TEXT,
+ HIDE_LANGUAGE_BAR,
+ HIDE_LOOKUP_TABLE,
+ HIDE_PREEDIT_TEXT,
+ PAGE_UP_LOOKUP_TABLE,
+ PAGE_DOWN_LOOKUP_TABLE,
+ RESET,
+ SHOW_AUXILIARY_TEXT,
+ SHOW_LANGUAGE_BAR,
+ SHOW_LOOKUP_TABLE,
+ SHOW_PREEDIT_TEXT,
+ START_SETUP,
+ STATE_CHANGED,
LAST_SIGNAL,
};
@@ -30,6 +55,8 @@ enum {
PROP_0,
};
+static guint panel_signals[LAST_SIGNAL] = { 0 };
+
/* functions prototype */
static void ibus_panel_service_set_property (IBusPanelService *panel,
guint prop_id,
@@ -167,6 +194,7 @@ static void
ibus_panel_service_class_init (IBusPanelServiceClass *class)
{
GObjectClass *gobject_class = G_OBJECT_CLASS (class);
+ ibus_panel_service_parent_class = IBUS_SERVICE_CLASS (g_type_class_peek_parent (class));
gobject_class->set_property = (GObjectSetPropertyFunc) ibus_panel_service_set_property;
gobject_class->get_property = (GObjectGetPropertyFunc) ibus_panel_service_get_property;
@@ -203,6 +231,436 @@ ibus_panel_service_class_init (IBusPanelServiceClass *class)
class->show_preedit_text = ibus_panel_service_not_implemented;
class->start_setup = ibus_panel_service_not_implemented;
class->state_changed = ibus_panel_service_not_implemented;
+
+ /* install signals */
+ /**
+ * IBusPanelService::update-preedit-text:
+ * @text: A preedit text to be updated.
+ * @cursor_pos: The cursor position of the text.
+ * @visible: Whether the update is visible.
+ *
+ * Emitted when the client application get the update-preedit-text.
+ * Implement the member function update_preedit_text() in extended class to receive this signal.
+ *
+ * <note><para>Argument @user_data is ignored in this function.</para></note>
+ */
+ panel_signals[UPDATE_PREEDIT_TEXT] =
+ g_signal_new (I_("update-preedit-text"),
+ G_TYPE_FROM_CLASS (gobject_class),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (IBusPanelServiceClass, update_preedit_text),
+ NULL, NULL,
+ _ibus_marshal_VOID__OBJECT_UINT_BOOLEAN,
+ G_TYPE_NONE,
+ 3,
+ IBUS_TYPE_TEXT,
+ G_TYPE_UINT,
+ G_TYPE_BOOLEAN);
+
+ /**
+ * IBusPanelService::update-auxiliary-text:
+ * @text: A preedit text to be updated.
+ * @visible: Whether the update is visible.
+ *
+ * Emitted when the client application get the update-auxiliary-text.
+ * Implement the member function update_auxiliary_text() in extended class to receive this signal.
+ *
+ * <note><para>Argument @user_data is ignored in this function.</para></note>
+ */
+ panel_signals[UPDATE_AUXILIARY_TEXT] =
+ g_signal_new (I_("update-auxiliary-text"),
+ G_TYPE_FROM_CLASS (gobject_class),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (IBusPanelServiceClass, update_auxiliary_text),
+ NULL, NULL,
+ _ibus_marshal_VOID__OBJECT_BOOLEAN,
+ G_TYPE_NONE,
+ 2,
+ IBUS_TYPE_TEXT,
+ G_TYPE_BOOLEAN);
+
+ /**
+ * IBusPanelService::update-lookup-table:
+ * @lookup_table: A lookup table to be updated.
+ * @visible: Whether the update is visible.
+ *
+ * Emitted when the client application get the update-lookup-table.
+ * Implement the member function update_lookup_table() in extended class to receive this signal.
+ *
+ * <note><para>Argument @user_data is ignored in this function.</para></note>
+ */
+ panel_signals[UPDATE_LOOKUP_TABLE] =
+ g_signal_new (I_("update-lookup-table"),
+ G_TYPE_FROM_CLASS (gobject_class),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (IBusPanelServiceClass, update_lookup_table),
+ NULL, NULL,
+ _ibus_marshal_VOID__OBJECT_BOOLEAN,
+ G_TYPE_NONE,
+ 2,
+ IBUS_TYPE_LOOKUP_TABLE,
+ G_TYPE_BOOLEAN);
+
+ /**
+ * IBusPanelService::focus-in:
+ * @input_context_path: Object path of InputContext.
+ *
+ * Emitted when the client application get the focus-in.
+ * Implement the member function focus_in() in extended class to receive this signal.
+ *
+ * <note><para>Argument @user_data is ignored in this function.</para></note>
+ */
+ panel_signals[FOCUS_IN] =
+ g_signal_new (I_("focus-in"),
+ G_TYPE_FROM_CLASS (gobject_class),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (IBusPanelServiceClass, focus_in),
+ NULL, NULL,
+ _ibus_marshal_VOID__STRING,
+ G_TYPE_NONE,
+ 1,
+ G_TYPE_STRING);
+
+ /**
+ * IBusPanelService::focus-out:
+ * @input_context_path: Object path of InputContext.
+ *
+ * Emitted when the client application get the focus-out.
+ * Implement the member function focus_out() in extended class to receive this signal.
+ *
+ * <note><para>Argument @user_data is ignored in this function.</para></note>
+ */
+ panel_signals[FOCUS_OUT] =
+ g_signal_new (I_("focus-out"),
+ G_TYPE_FROM_CLASS (gobject_class),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (IBusPanelServiceClass, focus_out),
+ NULL, NULL,
+ _ibus_marshal_VOID__STRING,
+ G_TYPE_NONE,
+ 1,
+ G_TYPE_STRING);
+
+ /**
+ * IBusPanelService::register-properties:
+ * @prop_list: An IBusPropList that contains properties.
+ *
+ * Emitted when the client application get the register-properties.
+ * Implement the member function register_properties() in extended class to receive this signal.
+ *
+ * <note><para>Argument @user_data is ignored in this function.</para></note>
+ */
+ panel_signals[REGISTER_PROPERTIES] =
+ g_signal_new (I_("register-properties"),
+ G_TYPE_FROM_CLASS (gobject_class),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (IBusPanelServiceClass, register_properties),
+ NULL, NULL,
+ _ibus_marshal_VOID__OBJECT,
+ G_TYPE_NONE,
+ 1,
+ IBUS_TYPE_PROP_LIST);
+
+ /**
+ * IBusPanelService::update-property:
+ * @prop: The IBusProperty to be updated.
+ *
+ * Emitted when the client application get the update-property.
+ * Implement the member function update_property() in extended class to receive this signal.
+ *
+ * <note><para>Argument @user_data is ignored in this function.</para></note>
+ */
+ panel_signals[UPDATE_PROPERTY] =
+ g_signal_new (I_("update-property"),
+ G_TYPE_FROM_CLASS (gobject_class),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (IBusPanelServiceClass, update_property),
+ NULL, NULL,
+ _ibus_marshal_VOID__OBJECT,
+ G_TYPE_NONE,
+ 1,
+ IBUS_TYPE_PROPERTY);
+
+ /**
+ * IBusPanelService::set-cursor-location:
+ * @x: X coordinate of the cursor.
+ * @y: Y coordinate of the cursor.
+ * @w: Width of the cursor.
+ * @h: Height of the cursor.
+ *
+ * Emitted when the client application get the set-cursor-location.
+ * Implement the member function set_cursor_location() in extended class to receive this signal.
+ *
+ * <note><para>Argument @user_data is ignored in this function.</para></note>
+ */
+ panel_signals[SET_CURSOR_LOCATION] =
+ g_signal_new (I_("set-cursor-location"),
+ G_TYPE_FROM_CLASS (gobject_class),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (IBusPanelServiceClass, set_cursor_location),
+ NULL, NULL,
+ _ibus_marshal_VOID__INT_INT_INT_INT,
+ G_TYPE_NONE,
+ 4,
+ G_TYPE_INT,
+ G_TYPE_INT,
+ G_TYPE_INT,
+ G_TYPE_INT);
+
+ /**
+ * IBusPanelService::cursor-up-lookup-table:
+ *
+ * Emitted when the client application get the cursor-up-lookup-table.
+ * Implement the member function cursor_up_lookup_table() in extended class to receive this signal.
+ *
+ * <note><para>Argument @user_data is ignored in this function.</para></note>
+ */
+ panel_signals[CURSOR_UP_LOOKUP_TABLE] =
+ g_signal_new (I_("cursor-up-lookup-table"),
+ G_TYPE_FROM_CLASS (gobject_class),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (IBusPanelServiceClass, cursor_up_lookup_table),
+ NULL, NULL,
+ _ibus_marshal_VOID__VOID,
+ G_TYPE_NONE, 0);
+
+ /**
+ * IBusPanelService::cursor-down-lookup-table:
+ *
+ * Emitted when the client application get the cursor-down-lookup-table.
+ * Implement the member function cursor_down_lookup_table() in extended class to receive this signal.
+ *
+ * <note><para>Argument @user_data is ignored in this function.</para></note>
+ */
+ panel_signals[CURSOR_DOWN_LOOKUP_TABLE] =
+ g_signal_new (I_("cursor-down-lookup-table"),
+ G_TYPE_FROM_CLASS (gobject_class),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (IBusPanelServiceClass, cursor_down_lookup_table),
+ NULL, NULL,
+ _ibus_marshal_VOID__VOID,
+ G_TYPE_NONE, 0);
+
+ /**
+ * IBusPanelService::hide-auxiliary-text:
+ *
+ * Emitted when the client application get the hide-auxiliary-text.
+ * Implement the member function hide_auxiliary_text() in extended class to receive this signal.
+ *
+ * <note><para>Argument @user_data is ignored in this function.</para></note>
+ */
+ panel_signals[HIDE_AUXILIARY_TEXT] =
+ g_signal_new (I_("hide-auxiliary-text"),
+ G_TYPE_FROM_CLASS (gobject_class),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (IBusPanelServiceClass, hide_auxiliary_text),
+ NULL, NULL,
+ _ibus_marshal_VOID__VOID,
+ G_TYPE_NONE, 0);
+
+ /**
+ * IBusPanelService::hide-language-bar:
+ *
+ * Emitted when the client application get the hide-language-bar.
+ * Implement the member function hide_language_bar() in extended class to receive this signal.
+ *
+ * <note><para>Argument @user_data is ignored in this function.</para></note>
+ */
+ panel_signals[HIDE_LANGUAGE_BAR] =
+ g_signal_new (I_("hide-language-bar"),
+ G_TYPE_FROM_CLASS (gobject_class),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (IBusPanelServiceClass, hide_language_bar),
+ NULL, NULL,
+ _ibus_marshal_VOID__VOID,
+ G_TYPE_NONE, 0);
+
+ /**
+ * IBusPanelService::hide-lookup-table:
+ *
+ * Emitted when the client application get the hide-lookup-table.
+ * Implement the member function hide_lookup_table() in extended class to receive this signal.
+ *
+ * <note><para>Argument @user_data is ignored in this function.</para></note>
+ */
+ panel_signals[HIDE_LOOKUP_TABLE] =
+ g_signal_new (I_("hide-lookup-table"),
+ G_TYPE_FROM_CLASS (gobject_class),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (IBusPanelServiceClass, hide_lookup_table),
+ NULL, NULL,
+ _ibus_marshal_VOID__VOID,
+ G_TYPE_NONE, 0);
+
+ /**
+ * IBusPanelService::hide-preedit-text:
+ *
+ * Emitted when the client application get the hide-preedit-text.
+ * Implement the member function hide_preedit_text() in extended class to receive this signal.
+ *
+ * <note><para>Argument @user_data is ignored in this function.</para></note>
+ */
+ panel_signals[HIDE_PREEDIT_TEXT] =
+ g_signal_new (I_("hide-preedit-text"),
+ G_TYPE_FROM_CLASS (gobject_class),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (IBusPanelServiceClass, hide_preedit_text),
+ NULL, NULL,
+ _ibus_marshal_VOID__VOID,
+ G_TYPE_NONE, 0);
+
+ /**
+ * IBusPanelService::page-up-lookup-table:
+ *
+ * Emitted when the client application get the page-up-lookup-table.
+ * Implement the member function page_up_lookup_table() in extended class to receive this signal.
+ *
+ * <note><para>Argument @user_data is ignored in this function.</para></note>
+ */
+ panel_signals[PAGE_UP_LOOKUP_TABLE] =
+ g_signal_new (I_("page-up-lookup-table"),
+ G_TYPE_FROM_CLASS (gobject_class),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (IBusPanelServiceClass, page_up_lookup_table),
+ NULL, NULL,
+ _ibus_marshal_VOID__VOID,
+ G_TYPE_NONE, 0);
+
+ /**
+ * IBusPanelService::page-down-lookup-table:
+ *
+ * Emitted when the client application get the page-down-lookup-table.
+ * Implement the member function page_down_lookup_table() in extended class to receive this signal.
+ *
+ * <note><para>Argument @user_data is ignored in this function.</para></note>
+ */
+ panel_signals[PAGE_DOWN_LOOKUP_TABLE] =
+ g_signal_new (I_("page-down-lookup-table"),
+ G_TYPE_FROM_CLASS (gobject_class),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (IBusPanelServiceClass, page_down_lookup_table),
+ NULL, NULL,
+ _ibus_marshal_VOID__VOID,
+ G_TYPE_NONE, 0);
+
+ /**
+ * IBusPanelService::reset:
+ *
+ * Emitted when the client application get the reset.
+ * Implement the member function reset() in extended class to receive this signal.
+ *
+ * <note><para>Argument @user_data is ignored in this function.</para></note>
+ */
+ panel_signals[RESET] =
+ g_signal_new (I_("reset"),
+ G_TYPE_FROM_CLASS (gobject_class),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (IBusPanelServiceClass, reset),
+ NULL, NULL,
+ _ibus_marshal_VOID__VOID,
+ G_TYPE_NONE, 0);
+
+ /**
+ * IBusPanelService::show-auxiliary-text:
+ *
+ * Emitted when the client application get the show-auxiliary-text.
+ * Implement the member function show_auxiliary_text() in extended class to receive this signal.
+ *
+ * <note><para>Argument @user_data is ignored in this function.</para></note>
+ */
+ panel_signals[SHOW_AUXILIARY_TEXT] =
+ g_signal_new (I_("show-auxiliary-text"),
+ G_TYPE_FROM_CLASS (gobject_class),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (IBusPanelServiceClass, show_auxiliary_text),
+ NULL, NULL,
+ _ibus_marshal_VOID__VOID,
+ G_TYPE_NONE, 0);
+
+ /**
+ * IBusPanelService::show-language-bar:
+ *
+ * Emitted when the client application get the show-language-bar.
+ * Implement the member function show_language_bar() in extended class to receive this signal.
+ *
+ * <note><para>Argument @user_data is ignored in this function.</para></note>
+ */
+ panel_signals[SHOW_LANGUAGE_BAR] =
+ g_signal_new (I_("show-language-bar"),
+ G_TYPE_FROM_CLASS (gobject_class),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (IBusPanelServiceClass, show_language_bar),
+ NULL, NULL,
+ _ibus_marshal_VOID__VOID,
+ G_TYPE_NONE, 0);
+
+ /**
+ * IBusPanelService::show-lookup-table:
+ *
+ * Emitted when the client application get the show-lookup-table.
+ * Implement the member function show_lookup_table() in extended class to receive this signal.
+ *
+ * <note><para>Argument @user_data is ignored in this function.</para></note>
+ */
+ panel_signals[SHOW_LOOKUP_TABLE] =
+ g_signal_new (I_("show-lookup-table"),
+ G_TYPE_FROM_CLASS (gobject_class),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (IBusPanelServiceClass, show_lookup_table),
+ NULL, NULL,
+ _ibus_marshal_VOID__VOID,
+ G_TYPE_NONE, 0);
+
+ /**
+ * IBusPanelService::show-preedit-text:
+ *
+ * Emitted when the client application get the show-preedit-text.
+ * Implement the member function show_preedit_text() in extended class to receive this signal.
+ *
+ * <note><para>Argument @user_data is ignored in this function.</para></note>
+ */
+ panel_signals[SHOW_PREEDIT_TEXT] =
+ g_signal_new (I_("show-preedit-text"),
+ G_TYPE_FROM_CLASS (gobject_class),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (IBusPanelServiceClass, show_preedit_text),
+ NULL, NULL,
+ _ibus_marshal_VOID__VOID,
+ G_TYPE_NONE, 0);
+
+ /**
+ * IBusPanelService::start-setup:
+ *
+ * Emitted when the client application get the start-setup.
+ * Implement the member function start_setup() in extended class to receive this signal.
+ *
+ * <note><para>Argument @user_data is ignored in this function.</para></note>
+ */
+ panel_signals[START_SETUP] =
+ g_signal_new (I_("start-setup"),
+ G_TYPE_FROM_CLASS (gobject_class),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (IBusPanelServiceClass, start_setup),
+ NULL, NULL,
+ _ibus_marshal_VOID__VOID,
+ G_TYPE_NONE, 0);
+
+ /**
+ * IBusPanelService::state-changed:
+ *
+ * Emitted when the client application get the state-changed.
+ * Implement the member function state_changed() in extended class to receive this signal.
+ *
+ * <note><para>Argument @user_data is ignored in this function.</para></note>
+ */
+ panel_signals[STATE_CHANGED] =
+ g_signal_new (I_("state-changed"),
+ G_TYPE_FROM_CLASS (gobject_class),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (IBusPanelServiceClass, state_changed),
+ NULL, NULL,
+ _ibus_marshal_VOID__VOID,
+ G_TYPE_NONE, 0);
}
static void
@@ -282,7 +740,7 @@ ibus_panel_service_service_method_call (IBusService *service,
IBusText *text = IBUS_TEXT (ibus_serializable_deserialize (variant));
g_variant_unref (variant);
- IBUS_PANEL_SERVICE_GET_CLASS (panel)->update_preedit_text (panel, text, cursor, visible);
+ g_signal_emit (panel, panel_signals[UPDATE_PREEDIT_TEXT], 0, text, cursor, visible);
_g_object_unref_if_floating (text);
g_dbus_method_invocation_return_value (invocation, NULL);
return;
@@ -296,7 +754,7 @@ ibus_panel_service_service_method_call (IBusService *service,
IBusText *text = IBUS_TEXT (ibus_serializable_deserialize (variant));
g_variant_unref (variant);
- IBUS_PANEL_SERVICE_GET_CLASS (panel)->update_auxiliary_text (panel, text, visible);
+ g_signal_emit (panel, panel_signals[UPDATE_AUXILIARY_TEXT], 0, text, visible);
_g_object_unref_if_floating (text);
g_dbus_method_invocation_return_value (invocation, NULL);
return;
@@ -310,7 +768,7 @@ ibus_panel_service_service_method_call (IBusService *service,
IBusLookupTable *table = IBUS_LOOKUP_TABLE (ibus_serializable_deserialize (variant));
g_variant_unref (variant);
- IBUS_PANEL_SERVICE_GET_CLASS (panel)->update_lookup_table (panel, table, visible);
+ g_signal_emit (panel, panel_signals[UPDATE_LOOKUP_TABLE], 0, table, visible);
_g_object_unref_if_floating (table);
g_dbus_method_invocation_return_value (invocation, NULL);
return;
@@ -319,7 +777,7 @@ ibus_panel_service_service_method_call (IBusService *service,
if (g_strcmp0 (method_name, "FocusIn") == 0) {
const gchar *path;
g_variant_get (parameters, "(&o)", &path);
- IBUS_PANEL_SERVICE_GET_CLASS (panel)->focus_in (panel, path);
+ g_signal_emit (panel, panel_signals[FOCUS_IN], 0, path);
g_dbus_method_invocation_return_value (invocation, NULL);
return;
}
@@ -327,7 +785,7 @@ ibus_panel_service_service_method_call (IBusService *service,
if (g_strcmp0 (method_name, "FocusOut") == 0) {
const gchar *path;
g_variant_get (parameters, "(&o)", &path);
- IBUS_PANEL_SERVICE_GET_CLASS (panel)->focus_out (panel, path);
+ g_signal_emit (panel, panel_signals[FOCUS_OUT], 0, path);
g_dbus_method_invocation_return_value (invocation, NULL);
return;
}
@@ -337,7 +795,7 @@ ibus_panel_service_service_method_call (IBusService *service,
IBusPropList *prop_list = IBUS_PROP_LIST (ibus_serializable_deserialize (variant));
g_variant_unref (variant);
- IBUS_PANEL_SERVICE_GET_CLASS (panel)->register_properties (panel, prop_list);
+ g_signal_emit (panel, panel_signals[REGISTER_PROPERTIES], 0, prop_list);
_g_object_unref_if_floating (prop_list);
g_dbus_method_invocation_return_value (invocation, NULL);
return;
@@ -348,7 +806,7 @@ ibus_panel_service_service_method_call (IBusService *service,
IBusProperty *property = IBUS_PROPERTY (ibus_serializable_deserialize (variant));
g_variant_unref (variant);
- IBUS_PANEL_SERVICE_GET_CLASS (panel)->update_property (panel, property);
+ g_signal_emit (panel, panel_signals[UPDATE_PROPERTY], 0, property);
_g_object_unref_if_floating (property);
g_dbus_method_invocation_return_value (invocation, NULL);
return;
@@ -357,41 +815,38 @@ ibus_panel_service_service_method_call (IBusService *service,
if (g_strcmp0 (method_name, "SetCursorLocation") == 0) {
gint x, y, w, h;
g_variant_get (parameters, "(iiii)", &x, &y, &w, &h);
- IBUS_PANEL_SERVICE_GET_CLASS (panel)->set_cursor_location (panel, x, y, w, h);
+ g_signal_emit (panel, panel_signals[SET_CURSOR_LOCATION], 0, x, y, w, h);
g_dbus_method_invocation_return_value (invocation, NULL);
return;
}
const static struct {
const gchar *name;
- const gint offset;
+ const gint signal_id;
} no_arg_methods [] = {
- { "CursorUpLookupTable" , G_STRUCT_OFFSET (IBusPanelServiceClass, cursor_down_lookup_table) },
- { "CursorDownLookupTable", G_STRUCT_OFFSET (IBusPanelServiceClass, cursor_up_lookup_table) },
- { "HideAuxiliaryText", G_STRUCT_OFFSET (IBusPanelServiceClass, hide_auxiliary_text) },
- { "HideLanguageBar", G_STRUCT_OFFSET (IBusPanelServiceClass, hide_language_bar) },
- { "HideLookupTable", G_STRUCT_OFFSET (IBusPanelServiceClass, hide_lookup_table) },
- { "HidePreeditText", G_STRUCT_OFFSET (IBusPanelServiceClass, hide_preedit_text) },
- { "PageDownLookupTable", G_STRUCT_OFFSET (IBusPanelServiceClass, page_down_lookup_table) },
- { "PageUpLookupTable", G_STRUCT_OFFSET (IBusPanelServiceClass, page_up_lookup_table) },
- { "Reset", G_STRUCT_OFFSET (IBusPanelServiceClass, reset) },
- { "ShowAuxiliaryText", G_STRUCT_OFFSET (IBusPanelServiceClass, show_auxiliary_text) },
- { "ShowLanguageBar", G_STRUCT_OFFSET (IBusPanelServiceClass, show_language_bar) },
- { "ShowLookupTable", G_STRUCT_OFFSET (IBusPanelServiceClass, show_lookup_table) },
- { "ShowPreeditText", G_STRUCT_OFFSET (IBusPanelServiceClass, show_preedit_text) },
- { "StartSetup", G_STRUCT_OFFSET (IBusPanelServiceClass, start_setup) },
- { "StateChanged", G_STRUCT_OFFSET (IBusPanelServiceClass, state_changed) },
+ { "CursorUpLookupTable", CURSOR_UP_LOOKUP_TABLE },
+ { "CursorDownLookupTable", CURSOR_DOWN_LOOKUP_TABLE },
+ { "HideAuxiliaryText", HIDE_AUXILIARY_TEXT },
+ { "HideLanguageBar", HIDE_LANGUAGE_BAR },
+ { "HideLookupTable", HIDE_LOOKUP_TABLE },
+ { "HidePreeditText", HIDE_PREEDIT_TEXT },
+ { "PageUpLookupTable", PAGE_UP_LOOKUP_TABLE },
+ { "PageDownLookupTable", PAGE_DOWN_LOOKUP_TABLE },
+ { "Reset", RESET },
+ { "ShowAuxiliaryText", SHOW_AUXILIARY_TEXT },
+ { "ShowLanguageBar", SHOW_LANGUAGE_BAR },
+ { "ShowLookupTable", SHOW_LOOKUP_TABLE },
+ { "ShowPreeditText", SHOW_PREEDIT_TEXT },
+ { "StartSetup", START_SETUP },
+ { "StateChanged", STATE_CHANGED },
};
gint i;
for (i = 0; i < G_N_ELEMENTS (no_arg_methods); i++) {
if (g_strcmp0 (method_name, no_arg_methods[i].name) == 0) {
- typedef gboolean (* NoArgFunc) (IBusPanelService *);
- NoArgFunc func;
- func = G_STRUCT_MEMBER (NoArgFunc,
- IBUS_PANEL_SERVICE_GET_CLASS (panel),
- no_arg_methods[i].offset);
- func (panel);
+ if (no_arg_methods[i].signal_id >= 0) {
+ g_signal_emit (panel, panel_signals[no_arg_methods[i].signal_id], 0);
+ }
g_dbus_method_invocation_return_value (invocation, NULL);
return;
}
@@ -490,7 +945,7 @@ ibus_panel_service_update_auxiliary_text (IBusPanelService *panel,
static void
ibus_panel_service_update_lookup_table (IBusPanelService *panel,
IBusLookupTable *lookup_table,
- gboolean visibl)
+ gboolean visible)
{
ibus_panel_service_not_implemented(panel);
}
@@ -540,15 +995,15 @@ ibus_panel_service_candidate_clicked (IBusPanelService *panel,
}
void
-ibus_panel_service_property_active (IBusPanelService *panel,
- const gchar *prop_name,
- guint prop_state)
+ibus_panel_service_property_activate (IBusPanelService *panel,
+ const gchar *prop_name,
+ guint prop_state)
{
g_return_if_fail (IBUS_IS_PANEL_SERVICE (panel));
ibus_service_emit_signal ((IBusService *) panel,
NULL,
IBUS_INTERFACE_PANEL,
- "PropertyActive",
+ "PropertyActivate",
g_variant_new ("(su)", prop_name, prop_state),
NULL);
}
diff --git a/src/ibuspanelservice.h b/src/ibuspanelservice.h
index 505fb7f..7678922 100644
--- a/src/ibuspanelservice.h
+++ b/src/ibuspanelservice.h
@@ -182,7 +182,7 @@ void ibus_panel_service_page_down (IBusPanelService *panel);
void ibus_panel_service_page_up (IBusPanelService *panel);
/**
- * ibus_panel_service_property_active
+ * ibus_panel_service_property_activate
* @panel: An IBusPanelService
* @prop_name: A property name
* @prop_state: State of the property
@@ -190,7 +190,7 @@ void ibus_panel_service_page_up (IBusPanelService *panel);
* Notify that a property is active
* by sending a "PropertyActivate" message to IBus service.
*/
-void ibus_panel_service_property_active (IBusPanelService *panel,
+void ibus_panel_service_property_activate (IBusPanelService *panel,
const gchar *prop_name,
guint prop_state);
/**
--
1.7.3.2
From cc1d776aeb65b481b1bd93e1f7acfbe4fea8e1f2 Mon Sep 17 00:00:00 2001
From: fujiwarat <takao.fujiwara1@gmail.com>
Date: Wed, 26 Jan 2011 14:01:25 +0900
Subject: [PATCH] Set QT_IM_MODULE=xim in case of no ibus-qt.
---
xinput-ibus.in | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/xinput-ibus.in b/xinput-ibus.in
index f10d003..8e5818b 100644
--- a/xinput-ibus.in
+++ b/xinput-ibus.in
@@ -13,6 +13,8 @@ if test -f /usr/lib64/qt4/plugins/inputmethods/libqtim-ibus.so || \
test -f /usr/lib/qt4/plugins/inputmethods/libqtim-ibus.so;
then
QT_IM_MODULE=ibus
+else
+ QT_IM_MODULE=xim
fi
# if [ -z "$IBUS_SESSION_ID" ]; then
--
1.7.3.2
From ea3917659bb7be5ee93ced938d5b522a468f7677 Mon Sep 17 00:00:00 2001
From: fujiwarat <takao.fujiwara1@gmail.com>
Date: Wed, 26 Jan 2011 13:15:08 +0900
Subject: [PATCH] Fix introspection definitions.
---
src/ibusbus.h | 2 +-
src/ibusinputcontext.h | 20 ++++++++++----------
2 files changed, 11 insertions(+), 11 deletions(-)
diff --git a/src/ibusbus.h b/src/ibusbus.h
index a2cd1db..3ea3cde 100644
--- a/src/ibusbus.h
+++ b/src/ibusbus.h
@@ -101,7 +101,7 @@ gboolean ibus_bus_is_connected (IBusBus *bus);
/**
* ibus_bus_get_connection:
* @bus: An IBusBus.
- * @returns: TRUE if @bus is connected, FALSE otherwise.
+ * @returns: (transfer none): A GDBusConnection of an IBusIBus instance.
*
* Return GDBusConnection of an IBusIBus instance.
*/
@@ -318,7 +318,7 @@ gboolean ibus_bus_set_global_engine (IBusBus *bus,
/**
* ibus_bus_get_config:
* @bus: An IBusBus.
- * @returns: An newly allocated IBusConfig which is configurable with @bus.
+ * @returns: (transfer none): An newly allocated IBusConfig which is configurable with @bus.
*
* Get the config instance from IBusBus.
*/
diff --git a/src/ibusinputcontext.h b/src/ibusinputcontext.h
index 4be9160..fa7d976 100644
--- a/src/ibusinputcontext.h
+++ b/src/ibusinputcontext.h
@@ -107,7 +107,7 @@ IBusInputContext
* ibus_input_context_get_input_context:
* @path: The path to the object that emitting the signal.
* @connection: An GDBusConnection.
- * @returns: An existing IBusInputContext.
+ * @returns: (transfer none): An existing IBusInputContext.
*
* Gets an existing IBusInputContext.
*/
@@ -142,7 +142,7 @@ IBusInputContext
*
* Use ibus_keymap_lookup_keysym() to convert keycode to keysym in given keyboard layout.
*
- * @see_also: #IBusEngine::process-key-event
+ * see_also: #IBusEngine::process-key-event
*/
gboolean ibus_input_context_process_key_event
(IBusInputContext *context,
@@ -160,7 +160,7 @@ gboolean ibus_input_context_process_key_event
*
* Set the cursor location of IBus input context.
*
- * @see_also: #IBusEngine::set-cursor-location
+ * see_also: #IBusEngine::set-cursor-location
*/
void ibus_input_context_set_cursor_location
(IBusInputContext *context,
@@ -177,7 +177,7 @@ void ibus_input_context_set_cursor_location
* When IBUS_CAP_FOCUS is not set, IBUS_CAP_PREEDIT_TEXT, IBUS_CAP_AUXILIARY_TEXT, IBUS_CAP_LOOKUP_TABLE, and IBUS_CAP_PROPERTY have to be all set.
* The panel component does nothing for an application that doesn't support focus.
*
- * @see_also: #IBusEngine::set-capabilities
+ * see_also: #IBusEngine::set-capabilities
*/
void ibus_input_context_set_capabilities
(IBusInputContext *context,
@@ -204,7 +204,7 @@ void ibus_input_context_property_activate
*
* Invoked when the client application get focus.
*
- * @see_also: #IBusEngine::focus_in.
+ * see_also: #IBusEngine::focus_in.
*/
void ibus_input_context_focus_in (IBusInputContext *context);
@@ -214,7 +214,7 @@ void ibus_input_context_focus_in (IBusInputContext *context);
*
* Invoked when the client application get focus.
*
- * @see_also: #IBusEngine::focus_out.
+ * see_also: #IBusEngine::focus_out.
*/
void ibus_input_context_focus_out (IBusInputContext *context);
@@ -225,7 +225,7 @@ void ibus_input_context_focus_out (IBusInputContext *context);
*
* Invoked when the IME is reset.
*
- * @see_also: #IBusEngine::reset
+ * see_also: #IBusEngine::reset
*/
void ibus_input_context_reset (IBusInputContext *context);
@@ -235,7 +235,7 @@ void ibus_input_context_reset (IBusInputContext *context);
*
* Invoked when the IME is enabled, either by IME switch hotkey or select from the menu.
*
- * @see_also: #IBusEngine::enable
+ * see_also: #IBusEngine::enable
*/
void ibus_input_context_enable (IBusInputContext *context);
@@ -245,7 +245,7 @@ void ibus_input_context_enable (IBusInputContext *context);
*
* Invoked when the IME is disabled, either by IME switch hotkey or select from the menu.
*
- * @see_also: #IBusEngine::disable
+ * see_also: #IBusEngine::disable
*/
void ibus_input_context_disable (IBusInputContext *context);
@@ -262,7 +262,7 @@ gboolean ibus_input_context_is_enabled (IBusInputContext *context);
/**
* ibus_input_context_get_engine:
* @context: An IBusInputContext.
- * @returns: An IME engine description for the context
+ * @returns: (transfer none): An IME engine description for the context
*
* Returns an IME engine description for the context.
*/
--
1.7.3.2