Bumped to 1.5.2

This commit is contained in:
Takao Fujiwara 2013-04-19 13:23:36 +09:00
parent 7bb697baa8
commit ba8f25c0f0
10 changed files with 240 additions and 629 deletions

4
.gitignore vendored
View File

@ -51,3 +51,7 @@ ibus-1.3.6.tar.gz
/ibus-gjs-3.4.1.20120518.tar.gz
/ibus-gjs-3.4.1.20120815.tar.gz
/ibus-gjs-3.4.1.20130115.tar.gz
/ibus-1.5.2.tar.gz
/ibus.1
/ibus-setup.1
/ibus-daemon.1

View File

@ -1,6 +1,6 @@
From 84354457b25d77fed1184224ce71a31ff6facfec Mon Sep 17 00:00:00 2001
From c907ff38e6f6de6637d79945efb9d1365b15a327 Mon Sep 17 00:00:00 2001
From: fujiwarat <takao.fujiwara1@gmail.com>
Date: Thu, 31 Jan 2013 17:30:09 +0900
Date: Fri, 19 Apr 2013 09:47:18 +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,
@ -25,7 +25,7 @@ IBUS_PRELOAD_ENGINE_MODE_USER and users can customize the value
5 files changed, 254 insertions(+), 11 deletions(-)
diff --git a/data/ibus.schemas.in b/data/ibus.schemas.in
index 70bf9ca..7833959 100644
index 704ba60..136c192 100644
--- a/data/ibus.schemas.in
+++ b/data/ibus.schemas.in
@@ -2,6 +2,30 @@
@ -253,10 +253,10 @@ index 737b3e2..8ce5a16 100644
* @x: x coordinate.
* @y: y coordinate.
diff --git a/ui/gtk3/panel.vala b/ui/gtk3/panel.vala
index 55b63ce..4717431 100644
index 10eaa0c..0a12c0f 100644
--- a/ui/gtk3/panel.vala
+++ b/ui/gtk3/panel.vala
@@ -291,6 +291,8 @@ class Panel : IBus.PanelService {
@@ -308,6 +308,8 @@ class Panel : IBus.PanelService {
if (m_config != null) {
m_config.value_changed.connect(config_value_changed_cb);
m_config.watch("general", "preload_engines");
@ -264,8 +264,8 @@ index 55b63ce..4717431 100644
+ m_config.watch("general", "preload_engine_mode");
m_config.watch("general", "engines_order");
m_config.watch("general", "switcher_delay_time");
m_config.watch("general/hotkey", "triggers");
@@ -358,7 +360,136 @@ class Panel : IBus.PanelService {
m_config.watch("general", "use_system_keyboard_layout");
@@ -379,7 +381,136 @@ class Panel : IBus.PanelService {
init_gkbd();
}
@ -402,7 +402,7 @@ index 55b63ce..4717431 100644
}
private void update_xkb_engines() {
@@ -573,6 +704,11 @@ class Panel : IBus.PanelService {
@@ -596,6 +727,11 @@ class Panel : IBus.PanelService {
string section,
string name,
Variant variant) {

View File

@ -1,12 +1,13 @@
From 6772bc0fc82074cd00d56c0e9795d163b489281e Mon Sep 17 00:00:00 2001
From 3130e980aafbb1ec025a7ca68559fb83e801cba3 Mon Sep 17 00:00:00 2001
From: fujiwarat <takao.fujiwara1@gmail.com>
Date: Fri, 11 Jan 2013 22:55:17 +0900
Subject: [PATCH] Add ibus-xkb and libgnomekbd.
Date: Fri, 19 Apr 2013 09:46:33 +0900
Subject: [PATCH] Add libgnomekbd and load preload engines.
---
bindings/vala/Gkbd-3.0.metadata | 1 +
bindings/vala/Makefile.am | 15 ++
bindings/vala/Makefile.am | 19 +-
bindings/vala/Xkl-1.0.metadata | 3 +
bindings/vala/gkbd.deps | 3 +
configure.ac | 40 ++++
data/ibus.schemas.in | 59 +++++
ibus-1.0.pc.in | 1 +
@ -20,9 +21,10 @@ Subject: [PATCH] Add ibus-xkb and libgnomekbd.
ui/gtk3/gkbdlayout.vala.true | 108 ++++++++++
ui/gtk3/panel.vala | 216 ++++++++++++++++++-
ui/gtk3/xkblayout.vala | 431 +++++++++++++++++++++++++++++++++++++
16 files changed, 1641 insertions(+), 1 deletion(-)
17 files changed, 1645 insertions(+), 4 deletions(-)
create mode 100644 bindings/vala/Gkbd-3.0.metadata
create mode 100644 bindings/vala/Xkl-1.0.metadata
create mode 100644 bindings/vala/gkbd.deps
create mode 100644 src/ibusxkbxml.c
create mode 100644 src/ibusxkbxml.h
create mode 100644 ui/gtk3/gkbdlayout.vala.false
@ -37,32 +39,41 @@ index 0000000..661e6fd
@@ -0,0 +1 @@
+Configuration cheader_filename="libgnomekbd/gkbd-configuration.h"
diff --git a/bindings/vala/Makefile.am b/bindings/vala/Makefile.am
index aba3454..bf3074a 100644
index aba3454..3f93fba 100644
--- a/bindings/vala/Makefile.am
+++ b/bindings/vala/Makefile.am
@@ -28,6 +28,17 @@ vapi_deps = \
@@ -28,8 +28,6 @@ vapi_deps = \
$(top_builddir)/src/IBus-1.0.gir \
$(NULL)
-ibus-1.0.vapi: $(vapi_deps)
-
VAPIGEN_VAPIS = ibus-1.0.vapi
ibus_1_0_vapi_DEPS = gio-2.0
@@ -39,15 +37,30 @@ ibus_1_0_vapi_FILES = \
$(srcdir)/IBus-1.0-custom.vala \
$(NULL)
+if ENABLE_LIBGNOMEKBD
+vapi_deps += $(builddir)/gkbd.vapi
+ibus-1.0.vapi: $(vapi_deps) gkbd.vapi
+
+$(builddir)/gkbd.vapi:
+ $(AM_V_GEN) $(VAPIGEN) --library gkbd \
+ --metadatadir $(srcdir) \
+ --pkg gtk+-3.0 --pkg glib-2.0 --pkg gmodule-2.0 \
+ /usr/share/gir-1.0/Gkbd-3.0.gir
+ $(NULL)
+VAPIGEN_VAPIS += gkbd.vapi
+
+gkbd_vapi_DEPS = gtk+-3.0 glib-2.0 gmodule-2.0
+gkbd_vapi_METADATADIRS = $(srcdir)
+gkbd_vapi_FILES = /usr/share/gir-1.0/Gkbd-3.0.gir
+else
+ibus-1.0.vapi: $(vapi_deps)
+endif
+
ibus-1.0.vapi: $(vapi_deps)
VAPIGEN_VAPIS = ibus-1.0.vapi
@@ -43,11 +54,15 @@ vapidir = $(datadir)/vala/vapi
vapi_DATA = $(VAPIGEN_VAPIS) $(VAPIGEN_VAPIS:.vapi=.deps)
vapidir = $(datadir)/vala/vapi
-vapi_DATA = $(VAPIGEN_VAPIS) $(VAPIGEN_VAPIS:.vapi=.deps)
+vapi_DATA = ibus-1.0.vapi ibus-1.0.deps
EXTRA_DIST = \
+ Gkbd-3.0.metadata \
+ gkbd.deps \
IBus-1.0.metadata \
IBus-1.0-custom.vala \
ibus-1.0.deps \
@ -71,8 +82,6 @@ index aba3454..bf3074a 100644
+ Xkl-1.0.metadata \
$(NULL)
+CLEANFILES = gkbd.vapi
+
-include $(top_srcdir)/git.mk
diff --git a/bindings/vala/Xkl-1.0.metadata b/bindings/vala/Xkl-1.0.metadata
new file mode 100644
@ -83,8 +92,17 @@ index 0000000..4961d0c
+Xkl cheader_filename="libxklavier/xklavier.h"
+Engine
+ .filter_events.evt ref type="X.Event"
diff --git a/bindings/vala/gkbd.deps b/bindings/vala/gkbd.deps
new file mode 100644
index 0000000..172632c
--- /dev/null
+++ b/bindings/vala/gkbd.deps
@@ -0,0 +1,3 @@
+gtk+-3.0
+glib-2.0
+gmodule-2.0
diff --git a/configure.ac b/configure.ac
index b328073..61d1464 100644
index 3036792..06b6e0c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -237,6 +237,45 @@ else
@ -133,7 +151,7 @@ index b328073..61d1464 100644
# GObject introspection
GOBJECT_INTROSPECTION_CHECK([0.6.8])
@@ -579,6 +618,7 @@ Build options:
@@ -574,6 +613,7 @@ Build options:
No snooper regexes "$NO_SNOOPER_APPS"
Panel icon "$IBUS_ICON_KEYBOARD"
Enable surrounding-text $enable_surrounding_text
@ -142,7 +160,7 @@ index b328073..61d1464 100644
])
diff --git a/data/ibus.schemas.in b/data/ibus.schemas.in
index dbb6da8..70bf9ca 100644
index 54ccb4c..704ba60 100644
--- a/data/ibus.schemas.in
+++ b/data/ibus.schemas.in
@@ -42,6 +42,52 @@
@ -231,44 +249,44 @@ index 9f593ab..c93a0ed 100644
Name: IBus
Description: IBus Library
diff --git a/ibus.spec.in b/ibus.spec.in
index 58cac38..4b6f869 100644
index 7989949..5391538 100644
--- a/ibus.spec.in
+++ b/ibus.spec.in
@@ -4,6 +4,7 @@
@@ -5,6 +5,7 @@
# Build flags
%define build_python_library 0
+%define build_xkb 0
+%define build_libgnomekbd 0
%define glib_ver %([ -a %{_libdir}/pkgconfig/glib-2.0.pc ] && pkg-config --modversion glib-2.0 | cut -d. -f 1,2 || echo -n "999")
%define gconf2_version 2.12.0
@@ -38,6 +39,10 @@ BuildRequires: GConf2-devel
@@ -40,6 +41,10 @@ BuildRequires: dconf-devel
BuildRequires: pygobject2-devel
BuildRequires: intltool
BuildRequires: iso-codes-devel
+%if %{build_xkb}
+%if %{build_libgnomekbd}
+BuildRequires: libxkbfile-devel
+BuildRequires: libgnomekbd-devel
+%endif
Requires: %{name}-libs = %{version}-%{release}
Requires: %{name}-gtk2 = %{version}-%{release}
@@ -51,6 +56,9 @@ Requires: im-chooser >= %{im_chooser_version}
Requires: GConf2 >= %{gconf2_version}
@@ -53,6 +58,9 @@ Requires: dbus-python >= %{dbus_python_version}
Requires: im-chooser >= %{im_chooser_version}
Requires: notify-python
Requires: librsvg2
+%if %{build_xkb}
+%if %{build_libgnomekbd}
+Requires: libgnomekbd
+%endif
Requires(post): desktop-file-utils
Requires(postun): desktop-file-utils
@@ -132,6 +140,10 @@ OPTIONS="$OPTIONS --enable-python-library"
@@ -153,6 +161,10 @@ OPTIONS="$OPTIONS --enable-python-library"
OPTIONS="$OPTIONS --disable-python-library"
%endif
+%if %{build_xkb}
+OPTIONS="$OPTIONS --enable-xkb --enable-libgnomekbd"
+%if %{build_libgnomekbd}
+OPTIONS="$OPTIONS --enable-libgnomekbd"
+%endif
+
%configure $OPTIONS
@ -966,10 +984,10 @@ index 0000000..6f5b7bd
+G_END_DECLS
+#endif
diff --git a/ui/gtk3/Makefile.am b/ui/gtk3/Makefile.am
index 5473027..b7e663c 100644
index 43454bc..6b7e70a 100644
--- a/ui/gtk3/Makefile.am
+++ b/ui/gtk3/Makefile.am
@@ -47,6 +47,8 @@ USE_SYMBOL_ICON = FALSE
@@ -45,6 +45,8 @@ USE_SYMBOL_ICON = FALSE
# force include config.h before gi18n.h.
AM_CPPFLAGS = -include $(CONFIG_HEADER)
@ -978,7 +996,7 @@ index 5473027..b7e663c 100644
AM_CFLAGS = \
@GLIB2_CFLAGS@ \
@GIO2_CFLAGS@ \
@@ -58,6 +60,8 @@ AM_CFLAGS = \
@@ -56,6 +58,8 @@ AM_CFLAGS = \
-DBINDIR=\"$(bindir)\" \
-DIBUS_DISABLE_DEPRECATED \
-DSWITCHER_USE_SYMBOL_ICON=$(USE_SYMBOL_ICON) \
@ -987,23 +1005,8 @@ index 5473027..b7e663c 100644
-Wno-unused-variable \
-Wno-unused-but-set-variable \
-Wno-unused-function \
@@ -91,6 +95,7 @@ ibus_ui_gtk3_SOURCES = \
application.vala \
candidatearea.vala \
candidatepanel.vala \
+ gkbdlayout.vala \
handle.vala \
iconwidget.vala \
keybindingmanager.vala \
@@ -99,17 +104,48 @@ ibus_ui_gtk3_SOURCES = \
property.vala \
separator.vala \
switcher.vala \
+ xkblayout.vala \
$(NULL)
ibus_ui_gtk3_LDADD = \
$(AM_LDADD) \
@@ -83,12 +87,40 @@ AM_VALAFLAGS = \
--pkg=xi \
$(NULL)
+if ENABLE_LIBGNOMEKBD
@ -1033,15 +1036,35 @@ index 5473027..b7e663c 100644
+ @cp $(srcdir)/gkbdlayout.vala.false $(srcdir)/gkbdlayout.vala
+endif
+
CLEANFILES = \
libexec_PROGRAMS = ibus-ui-gtk3
ibus_ui_gtk3_SOURCES = \
application.vala \
candidatearea.vala \
candidatepanel.vala \
+ gkbdlayout.vala \
handle.vala \
iconwidget.vala \
keybindingmanager.vala \
@@ -97,6 +129,7 @@ ibus_ui_gtk3_SOURCES = \
property.vala \
separator.vala \
switcher.vala \
+ xkblayout.vala \
$(NULL)
ibus_ui_gtk3_LDADD = \
@@ -105,9 +138,12 @@ ibus_ui_gtk3_LDADD = \
CLEANFILES = \
gtkpanel.xml \
+ gkbdlayout.vala \
$(NULL)
EXTRA_DIST = \
+ gkbdlayout.vala.false \
+ gkbdlayout.vala.true \
gtkpanel.xml.in.in \
gtkpanel.xml.in \
$(NULL)
diff --git a/ui/gtk3/gkbdlayout.vala.false b/ui/gtk3/gkbdlayout.vala.false
@ -1228,13 +1251,13 @@ index 0000000..2b78c69
+ */
+}
diff --git a/ui/gtk3/panel.vala b/ui/gtk3/panel.vala
index 24e6b2e..55b63ce 100644
index 0d7a5b2..10eaa0c 100644
--- a/ui/gtk3/panel.vala
+++ b/ui/gtk3/panel.vala
@@ -48,6 +48,13 @@ class Panel : IBus.PanelService {
private Gtk.AboutDialog m_about_dialog;
@@ -49,6 +49,13 @@ class Panel : IBus.PanelService {
private Gtk.CssProvider m_css_provider;
private int m_switcher_delay_time = 400;
private bool m_use_system_keyboard_layout = false;
+ private GkbdLayout m_gkbdlayout = null;
+ private XKBLayout m_xkblayout = null;
+ private string[] m_layouts = {};
@ -1245,7 +1268,7 @@ index 24e6b2e..55b63ce 100644
private const string ACCELERATOR_SWITCH_IME_FOREWARD = "<Control>space";
private GLib.List<Keybinding> m_keybindings = new GLib.List<Keybinding>();
@@ -90,6 +97,14 @@ class Panel : IBus.PanelService {
@@ -91,6 +98,14 @@ class Panel : IBus.PanelService {
~Panel() {
unbind_switch_shortcut();
@ -1260,15 +1283,15 @@ index 24e6b2e..55b63ce 100644
}
private void keybinding_manager_bind(KeybindingManager keybinding_manager,
@@ -281,6 +296,7 @@ class Panel : IBus.PanelService {
@@ -299,6 +314,7 @@ class Panel : IBus.PanelService {
m_config.watch("general/hotkey", "triggers");
m_config.watch("panel", "custom_font");
m_config.watch("panel", "use_custom_font");
+ init_engines_order();
update_engines(m_config.get_value("general", "preload_engines"),
m_config.get_value("general", "engines_order"));
unbind_switch_shortcut();
@@ -293,6 +309,204 @@ class Panel : IBus.PanelService {
// Update m_use_system_keyboard_layout before update_engines()
// is called.
set_use_system_keyboard_layout(null);
@@ -314,6 +330,204 @@ class Panel : IBus.PanelService {
set_custom_font();
}
@ -1473,15 +1496,15 @@ index 24e6b2e..55b63ce 100644
private void exec_setxkbmap(IBus.EngineDesc engine) {
string layout = engine.get_layout();
string variant = engine.get_layout_variant();
@@ -352,7 +566,7 @@ class Panel : IBus.PanelService {
return;
@@ -374,7 +588,7 @@ class Panel : IBus.PanelService {
}
// set xkb layout
- exec_setxkbmap(engine);
+ set_layout(engine);
if (!m_use_system_keyboard_layout) {
- exec_setxkbmap(engine);
+ set_layout(engine);
}
}
private void config_value_changed_cb(IBus.Config config,
diff --git a/ui/gtk3/xkblayout.vala b/ui/gtk3/xkblayout.vala
new file mode 100644
index 0000000..165a905

View File

@ -1,4 +1,4 @@
From 092d20121fc5401810b60c1d01f331a80b4ed42c Mon Sep 17 00:00:00 2001
From d3bc903b487bb301395947f692ce0d8c130874e3 Mon Sep 17 00:00:00 2001
From: fujiwarat <takao.fujiwara1@gmail.com>
Date: Sat, 6 Oct 2012 17:54:27 +0900
Subject: [PATCH] Fix not to switch engines by non-trigger keys.
@ -8,10 +8,10 @@ Subject: [PATCH] Fix not to switch engines by non-trigger keys.
1 file changed, 6 insertions(+)
diff --git a/ui/gtk3/switcher.vala b/ui/gtk3/switcher.vala
index 494fab9..c5286b1 100644
index 4a02743..c606682 100644
--- a/ui/gtk3/switcher.vala
+++ b/ui/gtk3/switcher.vala
@@ -127,6 +127,7 @@ class Switcher : Gtk.Window {
@@ -140,6 +140,7 @@ class Switcher : Gtk.Window {
/* Let gtk recalculate the window size. */
resize(1, 1);
@ -19,7 +19,7 @@ index 494fab9..c5286b1 100644
m_selected_engine = index;
m_label.set_text(m_buttons[index].longname);
m_buttons[index].grab_focus();
@@ -365,6 +366,11 @@ class Switcher : Gtk.Window {
@@ -378,6 +379,11 @@ class Switcher : Gtk.Window {
break;
default:
debug("0x%04x", pe->keyval);

View File

@ -0,0 +1,43 @@
From ef3aaa7bee7dd4c9ab3ccbe5a62d20be3b06a309 Mon Sep 17 00:00:00 2001
From: fujiwarat <takao.fujiwara1@gmail.com>
Date: Thu, 18 Apr 2013 09:48:25 +0900
Subject: [PATCH] IBusIMContext needs to reconnect IBusBus when IBusBus is
disconnected.
---
client/gtk2/ibusimcontext.c | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
diff --git a/client/gtk2/ibusimcontext.c b/client/gtk2/ibusimcontext.c
index 49598b4..8c7dbcc 100644
--- a/client/gtk2/ibusimcontext.c
+++ b/client/gtk2/ibusimcontext.c
@@ -1474,6 +1474,25 @@ _ibus_context_destroy_cb (IBusInputContext *ibuscontext,
g_signal_emit (ibusimcontext, _signal_preedit_changed_id, 0);
g_signal_emit (ibusimcontext, _signal_preedit_end_id, 0);
+
+ /* This destroy callback can be called when the client app connects to
+ * IBusBus and the app is disconnected. E.g. gnome-shell connects to
+ * IBusBus and it has StEntry input text and ibus can be restarted.
+ * And each ibusimcontext also needs to reconnect IBusBus here. */
+ if (!ibus_bus_is_connected (_bus)) {
+ g_signal_handlers_disconnect_by_func (_bus,
+ G_CALLBACK (_bus_connected_cb),
+ ibusimcontext);
+ g_object_unref (_bus);
+ _bus = ibus_bus_new_async ();
+
+ if (ibus_bus_is_connected (_bus)) {
+ _create_input_context (ibusimcontext);
+ }
+
+ g_signal_connect (_bus, "connected", G_CALLBACK (_bus_connected_cb),
+ ibusimcontext);
+ }
}
static void
--
1.8.0

View File

@ -1,397 +1 @@
From 8ac534fc002356b93e2015a8866f1ea89e3895f9 Mon Sep 17 00:00:00 2001
From: fujiwarat <takao.fujiwara1@gmail.com>
Date: Sat, 15 Dec 2012 17:40:18 +0900
Subject: [PATCH] Use Variant.unpack() instead of Variant.dup_strv().
Variant.dup_strv() returns a tuple in pygobject 3.2, e.g. (['<Control>space'], 1L), and a list in pygobject 3.4, e.g. ['<Control>space'] .
BUG=RH#887153
Review URL: https://codereview.appspot.com/6941051
---
setup/main.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/setup/main.py b/setup/main.py
index a8acc7a..707faa4 100644
--- a/setup/main.py
+++ b/setup/main.py
@@ -87,7 +87,7 @@ class Setup(object):
label = 'switch_engine'
variant = self.__config.get_value('general/hotkey', name)
if variant != None:
- shortcuts = variant.dup_strv()
+ shortcuts = variant.unpack()
else:
shortcuts = ['<Control>space']
--
1.7.12.1
From 62cd0492e3459416e1775aedc327bced53f66828 Mon Sep 17 00:00:00 2001
From: Rui Matos <tiagomatos@gmail.com>
Date: Wed, 9 Jan 2013 10:14:55 -0500
Subject: [PATCH] client: Queue events while the IBus context isn't ready
There are actually 3 patches here.
---
client: Queue events while the IBus context isn't ready
We may lose events that ought to be processed while the IBus context
isn't ready or if the connection to IBus isn't fully established yet.
To avoid that, enqueue events to be processed later when the IBus
context creation finishes.
---
client: Don't cancel an ongoing create input context on another request
This would only add more delays.
---
client: Cancel any ongoing create input context request on finalize
BUG=
Review URL: https://codereview.appspot.com/6988047
Patch from Rui Matos <tiagomatos@gmail.com>.
---
client/gtk2/ibusimcontext.c | 220 ++++++++++++++++++++++++++------------------
1 file changed, 133 insertions(+), 87 deletions(-)
diff --git a/client/gtk2/ibusimcontext.c b/client/gtk2/ibusimcontext.c
index 011676f..94005b7 100644
--- a/client/gtk2/ibusimcontext.c
+++ b/client/gtk2/ibusimcontext.c
@@ -40,6 +40,8 @@
# define IDEBUG(a...)
#endif
+#define MAX_QUEUED_EVENTS 20
+
struct _IBusIMContext {
GtkIMContext parent;
@@ -63,6 +65,7 @@ struct _IBusIMContext {
/* cancellable */
GCancellable *cancellable;
+ GQueue *events_queue;
};
struct _IBusIMContextClass {
@@ -154,6 +157,8 @@ static GType _ibus_type_im_context = 0;
static GtkIMContextClass *parent_class = NULL;
static IBusBus *_bus = NULL;
+static guint _daemon_name_watch_id = 0;
+static gboolean _daemon_is_running = FALSE;
void
ibus_im_context_register_type (GTypeModule *type_module)
@@ -261,6 +266,46 @@ _process_key_event_done (GObject *object,
gdk_event_free ((GdkEvent *)event);
}
+static gboolean
+_process_key_event (IBusInputContext *context,
+ GdkEventKey *event)
+{
+ guint state = event->state;
+ gboolean retval = FALSE;
+
+ if (event->type == GDK_KEY_RELEASE) {
+ state |= IBUS_RELEASE_MASK;
+ }
+
+ if (_use_sync_mode) {
+ retval = ibus_input_context_process_key_event (context,
+ event->keyval,
+ event->hardware_keycode - 8,
+ state);
+ }
+ else {
+ ibus_input_context_process_key_event_async (context,
+ event->keyval,
+ event->hardware_keycode - 8,
+ state,
+ -1,
+ NULL,
+ _process_key_event_done,
+ gdk_event_copy ((GdkEvent *) event));
+
+ retval = TRUE;
+ }
+
+ if (retval) {
+ event->state |= IBUS_HANDLED_MASK;
+ }
+ else {
+ event->state |= IBUS_IGNORED_MASK;
+ }
+
+ return retval;
+}
+
/* emit "retrieve-surrounding" glib signal of GtkIMContext, if
* context->caps has IBUS_CAP_SURROUNDING_TEXT and the current IBus
@@ -387,38 +432,7 @@ _key_snooper_cb (GtkWidget *widget,
ibusimcontext->time = event->time;
}
- guint state = event->state;
- if (event->type == GDK_KEY_RELEASE) {
- state |= IBUS_RELEASE_MASK;
- }
-
- if (_use_sync_mode) {
- retval = ibus_input_context_process_key_event (
- ibuscontext,
- event->keyval,
- event->hardware_keycode - 8,
- state);
- }
- else {
- ibus_input_context_process_key_event_async (
- ibuscontext,
- event->keyval,
- event->hardware_keycode - 8,
- state,
- -1,
- NULL,
- _process_key_event_done,
- gdk_event_copy ((GdkEvent *) event));
- retval = TRUE;
-
- }
-
- if (retval) {
- event->state |= IBUS_HANDLED_MASK;
- }
- else {
- event->state |= IBUS_IGNORED_MASK;
- }
+ retval = _process_key_event (ibuscontext, event);
if (ibusimcontext != NULL) {
/* unref ibusimcontext could call ibus_im_context_finalize here
@@ -450,6 +464,23 @@ _get_boolean_env(const gchar *name,
}
static void
+daemon_name_appeared (GDBusConnection *connection,
+ const gchar *name,
+ const gchar *owner,
+ gpointer data)
+{
+ _daemon_is_running = TRUE;
+}
+
+static void
+daemon_name_vanished (GDBusConnection *connection,
+ const gchar *name,
+ gpointer data)
+{
+ _daemon_is_running = FALSE;
+}
+
+static void
ibus_im_context_class_init (IBusIMContextClass *class)
{
IDEBUG ("%s", __FUNCTION__);
@@ -533,6 +564,14 @@ ibus_im_context_class_init (IBusIMContextClass *class)
/* always install snooper */
if (_key_snooper_id == 0)
_key_snooper_id = gtk_key_snooper_install (_key_snooper_cb, NULL);
+
+ _daemon_name_watch_id = g_bus_watch_name (G_BUS_TYPE_SESSION,
+ IBUS_SERVICE_IBUS,
+ G_BUS_NAME_WATCHER_FLAGS_NONE,
+ daemon_name_appeared,
+ daemon_name_vanished,
+ NULL,
+ NULL);
}
static void
@@ -543,6 +582,8 @@ ibus_im_context_class_fini (IBusIMContextClass *class)
gtk_key_snooper_remove (_key_snooper_id);
_key_snooper_id = 0;
}
+
+ g_bus_unwatch_name (_daemon_name_watch_id);
}
/* Copied from gtk+2.0-2.20.1/modules/input/imcedilla.c to fix crosbug.com/11421.
@@ -602,6 +643,7 @@ ibus_im_context_init (GObject *obj)
ibusimcontext->caps = IBUS_CAP_PREEDIT_TEXT | IBUS_CAP_FOCUS;
#endif
+ ibusimcontext->events_queue = g_queue_new ();
// Create slave im context
ibusimcontext->slave = gtk_im_context_simple_new ();
@@ -651,6 +693,13 @@ ibus_im_context_finalize (GObject *obj)
g_signal_handlers_disconnect_by_func (_bus, G_CALLBACK (_bus_connected_cb), obj);
+ if (ibusimcontext->cancellable != NULL) {
+ /* Cancel any ongoing create input context request */
+ g_cancellable_cancel (ibusimcontext->cancellable);
+ g_object_unref (ibusimcontext->cancellable);
+ ibusimcontext->cancellable = NULL;
+ }
+
if (ibusimcontext->ibuscontext) {
ibus_proxy_destroy ((IBusProxy *)ibusimcontext->ibuscontext);
}
@@ -670,6 +719,9 @@ ibus_im_context_finalize (GObject *obj)
pango_attr_list_unref (ibusimcontext->preedit_attrs);
}
+ g_queue_free_full (ibusimcontext->events_queue,
+ (GDestroyNotify)gdk_event_free);
+
G_OBJECT_CLASS(parent_class)->finalize (obj);
}
@@ -681,65 +733,56 @@ ibus_im_context_filter_keypress (GtkIMContext *context,
IBusIMContext *ibusimcontext = IBUS_IM_CONTEXT (context);
- if (G_LIKELY (ibusimcontext->ibuscontext && ibusimcontext->has_focus)) {
- /* If context does not have focus, ibus will process key event in sync mode.
- * It is a workaround for increase search in treeview.
- */
- gboolean retval = FALSE;
-
- if (event->state & IBUS_HANDLED_MASK)
- return TRUE;
+ if (!_daemon_is_running)
+ return gtk_im_context_filter_keypress (ibusimcontext->slave, event);
- if (event->state & IBUS_IGNORED_MASK)
- return gtk_im_context_filter_keypress (ibusimcontext->slave, event);
+ /* If context does not have focus, ibus will process key event in
+ * sync mode. It is a workaround for increase search in treeview.
+ */
+ if (!ibusimcontext->has_focus)
+ return gtk_im_context_filter_keypress (ibusimcontext->slave, event);
- /* XXX it is a workaround for some applications do not set client window. */
- if (ibusimcontext->client_window == NULL && event->window != NULL)
- gtk_im_context_set_client_window ((GtkIMContext *)ibusimcontext, event->window);
+ if (event->state & IBUS_HANDLED_MASK)
+ return TRUE;
- _request_surrounding_text (ibusimcontext);
+ if (event->state & IBUS_IGNORED_MASK)
+ return gtk_im_context_filter_keypress (ibusimcontext->slave, event);
- if (ibusimcontext != NULL) {
- ibusimcontext->time = event->time;
- }
+ /* XXX it is a workaround for some applications do not set client
+ * window. */
+ if (ibusimcontext->client_window == NULL && event->window != NULL)
+ gtk_im_context_set_client_window ((GtkIMContext *)ibusimcontext,
+ event->window);
- guint state = event->state;
- if (event->type == GDK_KEY_RELEASE) {
- state |= IBUS_RELEASE_MASK;
- }
+ _request_surrounding_text (ibusimcontext);
- if (_use_sync_mode) {
- retval = ibus_input_context_process_key_event (
- ibusimcontext->ibuscontext,
- event->keyval,
- event->hardware_keycode - 8,
- state);
- }
- else {
- ibus_input_context_process_key_event_async (
- ibusimcontext->ibuscontext,
- event->keyval,
- event->hardware_keycode - 8,
- state,
- -1,
- NULL,
- _process_key_event_done,
- gdk_event_copy ((GdkEvent *) event));
- retval = TRUE;
- }
+ ibusimcontext->time = event->time;
- if (retval) {
- event->state |= IBUS_HANDLED_MASK;
+ if (ibusimcontext->ibuscontext) {
+ if (_process_key_event (ibusimcontext->ibuscontext, event))
return TRUE;
- }
- else {
- event->state |= IBUS_IGNORED_MASK;
- return gtk_im_context_filter_keypress (ibusimcontext->slave, event);
- }
+ else
+ return gtk_im_context_filter_keypress (ibusimcontext->slave,
+ event);
}
- else {
- return gtk_im_context_filter_keypress (ibusimcontext->slave, event);
+
+ /* At this point we _should_ be waiting for the IBus context to be
+ * created or the connection to IBus to be established. If that's
+ * the case we queue events to be processed when the IBus context
+ * is ready. */
+ g_return_val_if_fail (ibusimcontext->cancellable != NULL ||
+ ibus_bus_is_connected (_bus) == FALSE,
+ FALSE);
+ g_queue_push_tail (ibusimcontext->events_queue,
+ gdk_event_copy ((GdkEvent *)event));
+
+ if (g_queue_get_length (ibusimcontext->events_queue) > MAX_QUEUED_EVENTS) {
+ g_warning ("Events queue growing too big, will start to drop.");
+ gdk_event_free ((GdkEvent *)
+ g_queue_pop_head (ibusimcontext->events_queue));
}
+
+ return TRUE;
}
static void
@@ -1482,6 +1525,14 @@ _create_input_context_done (IBusBus *bus,
ibus_input_context_focus_in (ibusimcontext->ibuscontext);
_set_cursor_location_internal (ibusimcontext);
}
+
+ if (!g_queue_is_empty (ibusimcontext->events_queue)) {
+ GdkEventKey *event;
+ while (event = g_queue_pop_head (ibusimcontext->events_queue)) {
+ _process_key_event (context, event);
+ gdk_event_free ((GdkEvent *)event);
+ }
+ }
}
g_object_unref (ibusimcontext);
@@ -1494,12 +1545,7 @@ _create_input_context (IBusIMContext *ibusimcontext)
g_assert (ibusimcontext->ibuscontext == NULL);
- if (ibusimcontext->cancellable != NULL) {
- /* Cancel previous create input context request */
- g_cancellable_cancel (ibusimcontext->cancellable);
- g_object_unref (ibusimcontext->cancellable);
- ibusimcontext->cancellable = NULL;
- }
+ g_return_if_fail (ibusimcontext->cancellable == NULL);
ibusimcontext->cancellable = g_cancellable_new ();
--
1.8.0

View File

@ -1,4 +1,4 @@
From 1f21bce0403cdf7f99faa33842bc23b49aaee8cc Mon Sep 17 00:00:00 2001
From 918f22efe0898a6dc87da4d94dadf413e7840e43 Mon Sep 17 00:00:00 2001
From: fujiwarat <takao.fujiwara1@gmail.com>
Date: Thu, 31 Jan 2013 17:31:55 +0900
Subject: [PATCH] Enable ibus-setup to show the frequently used languages
@ -11,7 +11,7 @@ Subject: [PATCH] Enable ibus-setup to show the frequently used languages
3 files changed, 300 insertions(+), 24 deletions(-)
diff --git a/data/ibus.schemas.in b/data/ibus.schemas.in
index 7833959..72bcc72 100644
index 136c192..bd566ca 100644
--- a/data/ibus.schemas.in
+++ b/data/ibus.schemas.in
@@ -325,6 +325,174 @@ se,si,sk,sy,sy(ku),th,tj,tr,ua,uz,vn

View File

@ -1,80 +0,0 @@
--- ibus-1.5.1/bindings/vala/Makefile.am.orig 2013-01-15 16:58:25.571433690 +0900
+++ ibus-1.5.1/bindings/vala/Makefile.am 2013-01-15 16:58:46.983455158 +0900
@@ -20,17 +20,38 @@
# Free Software Foundation, Inc., 59 Temple Place, Suite 330,
# Boston, MA 02111-1307 USA
--include $(VAPIGEN_MAKEFILE)
+vapidir = $(datadir)/vala/vapi
+dist_vapi_DATA = \
+ ibus-@IBUS_API_VERSION@.vapi \
+ ibus-@IBUS_API_VERSION@.deps \
+ $(NULL)
+# Don't rebuild vapi every time gir is updated.
+if ENABLE_LIBGNOMEKBD
vapi_deps = \
- IBus-1.0.metadata \
- IBus-1.0-custom.vala \
- $(top_builddir)/src/IBus-1.0.gir \
+ $(srcdir)/IBus-1.0.metadata \
+ $(srcdir)/IBus-1.0-custom.vala \
+ | \
+ $(builddir)/gkbd.vapi \
+ $(top_srcdir)/src/IBus-@IBUS_API_VERSION@.gir \
$(NULL)
+else
+vapi_deps = \
+ $(srcdir)/IBus-1.0.metadata \
+ $(srcdir)/IBus-1.0-custom.vala \
+ | \
+ $(top_srcdir)/src/IBus-@IBUS_API_VERSION@.gir \
+ $(NULL)
+endif
-if ENABLE_LIBGNOMEKBD
-vapi_deps += $(builddir)/gkbd.vapi
+ibus-@IBUS_API_VERSION@.vapi: $(vapi_deps)
+ $(AM_V_GEN) $(VAPIGEN) --library ibus-@IBUS_API_VERSION@ \
+ --pkg gio-2.0 \
+ --metadatadir=$(srcdir) \
+ $(top_srcdir)/src/IBus-@IBUS_API_VERSION@.gir \
+ $(srcdir)/IBus-1.0-custom.vala
+if ENABLE_LIBGNOMEKBD
$(builddir)/gkbd.vapi:
$(AM_V_GEN) $(VAPIGEN) --library gkbd \
--metadatadir $(srcdir) \
@@ -39,25 +60,10 @@ $(builddir)/gkbd.vapi:
$(NULL)
endif
-ibus-1.0.vapi: $(vapi_deps)
-
-VAPIGEN_VAPIS = ibus-1.0.vapi
-
-ibus_1_0_vapi_DEPS = gio-2.0
-ibus_1_0_vapi_METADATADIRS = $(srcdir)
-ibus_1_0_vapi_FILES = \
- $(top_builddir)/src/IBus-1.0.gir \
- $(srcdir)/IBus-1.0-custom.vala \
- $(NULL)
-
-vapidir = $(datadir)/vala/vapi
-vapi_DATA = $(VAPIGEN_VAPIS) $(VAPIGEN_VAPIS:.vapi=.deps)
-
EXTRA_DIST = \
Gkbd-3.0.metadata \
IBus-1.0.metadata \
IBus-1.0-custom.vala \
- ibus-1.0.deps \
config.vapi \
xi.vapi \
Xkl-1.0.metadata \
@@ -65,4 +71,6 @@ EXTRA_DIST = \
CLEANFILES = gkbd.vapi
+MAINTAINERCLEANFILES = ibus-@IBUS_API_VERSION@.vapi
+
-include $(top_srcdir)/git.mk

148
ibus.spec
View File

@ -1,4 +1,4 @@
%global with_xkbfile 1
%global with_preload_xkb_engine 1
%global with_pygobject2 1
%global with_pygobject3 1
@ -34,8 +34,8 @@
%global dbus_python_version 0.83.0
Name: ibus
Version: 1.5.1
Release: 3%{?dist}
Version: 1.5.2
Release: 1%{?dist}
Summary: Intelligent Input Bus for Linux OS
License: LGPLv2+
Group: System Environment/Libraries
@ -45,6 +45,9 @@ Source1: %{name}-xinput
%if %with_gjs
# ibus-gjs
Source2: http://fujiwara.fedorapeople.org/ibus/gnome-shell/%{name}-gjs-%{ibus_gjs_version}.tar.gz
Source3: https://raw.github.com/ibus/ibus/master/debian/ibus.1
Source4: https://raw.github.com/ibus/ibus/master/debian/ibus-daemon.1
Source5: https://raw.github.com/ibus/ibus/master/debian/ibus-setup.1
%endif
# Upstreamed patches.
Patch0: %{name}-HEAD.patch
@ -56,6 +59,8 @@ Patch2: %{name}-541492-xkb.patch
Patch3: %{name}-530711-preload-sys.patch
# Hide minor input method engines on ibus-setup by locale
Patch4: %{name}-xx-setup-frequent-lang.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=947318
Patch5: %{name}-947318-reconnect-gtk-client.patch
%if (0%{?fedora} <= 17 && 0%{?rhel} < 7)
# Workaround to disable preedit on gnome-shell until bug 658420 is fixed.
@ -66,15 +71,12 @@ Patch92: %{name}-xx-g-s-disable-preedit.patch
# The patch enables to build on fedora 17.
Patch93: %{name}-xx-f17.patch
%endif
# Fix the build failure in f17 and f19 vala.
Patch94: %{name}-xx-vapi-build-failure.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: gettext-devel
BuildRequires: libtool
BuildRequires: python2-devel
BuildRequires: gtk2-devel
BuildRequires: gtk3-devel
BuildRequires: dbus-glib-devel
@ -84,18 +86,12 @@ BuildRequires: gtk-doc
BuildRequires: dconf-devel
BuildRequires: dbus-x11
BuildRequires: vala
BuildRequires: vala-devel
BuildRequires: vala-tools
# for AM_GCONF_SOURCE_2 in configure.ac
BuildRequires: GConf2-devel
%if %with_pygobject3
BuildRequires: gobject-introspection-devel
BuildRequires: pygobject3-devel
%endif
BuildRequires: intltool
BuildRequires: iso-codes-devel
%if %with_xkbfile
BuildRequires: libxkbfile-devel
%endif
%if %with_gkbd
BuildRequires: libgnomekbd-devel
%endif
@ -104,21 +100,13 @@ BuildRequires: libgnomekbd-devel
BuildRequires: gjs
BuildRequires: gnome-shell
%endif
BuildRequires: diffstat
Requires: %{name}-libs = %{version}-%{release}
Requires: %{name}-gtk2 = %{version}-%{release}
%if (0%{?fedora} > 14 || 0%{?rhel} > 6)
Requires: %{name}-gtk3 = %{version}-%{release}
%endif
Requires: %{name}-libs = %{version}-%{release}
Requires: %{name}-gtk2 = %{version}-%{release}
Requires: %{name}-gtk3 = %{version}-%{release}
Requires: %{name}-setup = %{version}-%{release}
Requires: %{name}-pygtk2 = %{version}-%{release}
%if %with_pygobject2
Requires: pygtk2
%endif
%if %with_pygobject3
Requires: pygobject3
%endif
Requires: pyxdg
Requires: iso-codes
Requires: dbus-python >= %{dbus_python_version}
Requires: dbus-x11
@ -187,6 +175,35 @@ Requires(post): glib2 >= %{glib_ver}
%description gtk3
This package contains ibus im module for gtk3
%if %with_pygobject3
%package setup
Summary: IBus setup utility
Group: System Environment/Libraries
Requires: %{name} = %{version}-%{release}
Requires: pygobject3
BuildRequires: gobject-introspection-devel
BuildRequires: pygobject3-devel
BuildArch: noarch
%description setup
This is a setup utility for IBus.
%endif
%if %with_pygobject2
%package pygtk2
Summary: IBus pygtk2 library
Group: System Environment/Libraries
Requires: %{name} = %{version}-%{release}
Requires: pygtk2
Requires: pyxdg
BuildRequires: python2-devel
BuildArch: noarch
%description pygtk2
This is a pygtk2 library for IBus. Now major IBUs engines use pygobject3
and this package will be deprecated.
%endif
%if %with_gjs
%package gnome3
Summary: IBus gnome-shell-extension for GNOME3
@ -231,51 +248,27 @@ The ibus-devel-docs package contains developer documentation for ibus
gzip -dc %SOURCE2 | tar xf -
%endif
# home [dot] corp [dot] redhat [dot] com/wiki/rpmdiff-multilib
# Update timestamps on the files touched by a patch, to avoid non-equal
# .pyc/.pyo files across the multilib peers within a build, where "Level"
# is the patch prefix option (e.g. -p1)
UpdateTimestamps() {
Level=$1
PatchFile=$2
# Locate the affected files:
for f in $(diffstat $Level -l $PatchFile); do
# Set the files to have the same timestamp as that of the patch:
touch -r $PatchFile $f
done
}
# %%patch0 -p1
# UpdateTimestamps -p1 %%{PATCH0}
%patch0 -p1
UpdateTimestamps -p1 %{PATCH0}
%if (0%{?fedora} <= 17 && 0%{?rhel} < 7)
%patch92 -p1 -b .g-s-preedit
UpdateTimestamps -p1 %{PATCH92}
%endif
%patch5 -p1 -b .reconnect
cp client/gtk2/ibusimcontext.c client/gtk3/ibusimcontext.c ||
%patch1 -p1 -b .noswitch
UpdateTimestamps -p1 %{PATCH1}
%if %with_xkbfile
%patch2 -p1 -b .xkb
UpdateTimestamps -p1 %{PATCH2}
%if %with_preload_xkb_engine
%patch2 -p1 -b .preload-xkb
rm -f bindings/vala/ibus-1.0.vapi
rm -f data/dconf/00-upstream-settings
%endif
%patch3 -p1 -b .preload-sys
UpdateTimestamps -p1 %{PATCH3}
%patch4 -p1 -b .setup-frequent-lang
UpdateTimestamps -p1 %{PATCH4}
%if (0%{?fedora} < 18 && 0%{?rhel} < 7)
%patch93 -p1 -b .f17
UpdateTimestamps -p1 %{PATCH93}
%endif
%patch94 -p1 -b .vapi
UpdateTimestamps -p1 %{PATCH94}
%build
%if %with_xkbfile
%if %with_preload_xkb_engine
autoreconf -f -i
%endif
%configure \
@ -297,7 +290,7 @@ autoreconf -f -i
%endif
--enable-introspection
%if %with_xkbfile
%if %with_preload_xkb_engine
make -C ui/gtk3 maintainer-clean-generic
%endif
# make -C po update-gmo
@ -354,6 +347,14 @@ if test -f ibus/_config.py.in -a \
fi
fi
for S in %{SOURCE3} %{SOURCE4} %{SOURCE5}
do
cp $S .
MP=`basename $S`
gzip $MP
install -pm 644 -D ${MP}.gz $RPM_BUILD_ROOT%{_datadir}/man/man1/${MP}.gz
done
%if %with_gjs
# https://bugzilla.redhat.com/show_bug.cgi?id=657165
d=`basename %SOURCE2 .tar.gz`
@ -421,27 +422,24 @@ fi
# FIXME: no version number
%files -f %{name}10.lang
%doc AUTHORS COPYING README
%if %with_pygobject2
%dir %{python2_sitelib}/ibus
%{python2_sitelib}/ibus/*
%endif
%dir %{_datadir}/ibus/
%{_bindir}/ibus
%{_bindir}/ibus-daemon
%{_bindir}/ibus-setup
%if %with_pygobject3
%{_datadir}/ibus/*
%endif
%{_datadir}/applications/*
%{_datadir}/icons/hicolor/*/apps/*
%{_datadir}/bash-completion/completions/ibus.bash
%{_datadir}/GConf/gsettings/*
%{_datadir}/glib-2.0/schemas/*.xml
%{_datadir}/ibus/component
%{_datadir}/ibus/engine
%{_datadir}/ibus/keymaps
%{_datadir}/icons/hicolor/*/apps/*
%{_datadir}/man/man1/ibus.1.gz
%{_datadir}/man/man1/ibus-daemon.1.gz
%{_libexecdir}/ibus-engine-simple
%{_libexecdir}/ibus-dconf
%{_libexecdir}/ibus-ui-gtk3
%{_libexecdir}/ibus-x11
# {_sysconfdir}/xdg/autostart/ibus.desktop
%{_sysconfdir}/bash_completion.d/ibus.bash
%{_sysconfdir}/dconf/db/ibus.d
%{_sysconfdir}/dconf/profile/ibus
%python2_sitearch/gi/overrides/IBus.py*
@ -449,9 +447,7 @@ fi
%files libs
%{_libdir}/libibus-%{ibus_api_version}.so.*
%if %with_pygobject3
%{_libdir}/girepository-1.0/IBus-1.0.typelib
%endif
%files gtk2
%{_libdir}/gtk-2.0/%{gtk2_binary_version}/immodules/im-ibus.so
@ -459,6 +455,19 @@ fi
%files gtk3
%{_libdir}/gtk-3.0/%{gtk3_binary_version}/immodules/im-ibus.so
%if %with_pygobject3
%files setup
%{_bindir}/ibus-setup
%{_datadir}/ibus/setup
%{_datadir}/man/man1/ibus-setup.1.gz
%endif
%if %with_pygobject2
%files pygtk2
%dir %{python2_sitelib}/ibus
%{python2_sitelib}/ibus/*
%endif
%if %with_gjs
%files gnome3
%{_datadir}/gnome-shell/js/ui/status/ibus
@ -477,6 +486,11 @@ fi
%{_datadir}/gtk-doc/html/*
%changelog
* Thu Apr 18 2013 Takao Fujiwara <tfujiwar@redhat.com> - 1.5.2-1
- Bumped to 1.5.2
- Created noarch packages for python files due to .pyc and .pyo.
- Added man pages.
* Mon Feb 18 2013 Takao Fujiwara <tfujiwar@redhat.com> - 1.5.1-3
- Copied gtk2 module to gtk3 one.

View File

@ -1,3 +1,6 @@
f0103201249c657712f5f4d9a36923ed ibus-1.5.1.tar.gz
1b6b9c91089767762e00f8b5858d1b59 ibus-1.5.2.tar.gz
2d2ad58e3e41429dbd883ba7e501c9b2 ibus-gjs-3.2.1.20111230.tar.gz
da9a22c82ab33423d7afeb3da4146fa8 ibus-gjs-3.4.1.20130115.tar.gz
63a1b72673b34aaa20dcbdcdced51b1a ibus.1
1def117ead16ebcbfe223908db979721 ibus-setup.1
af808609c134cb7b2ffd17eeb189309e ibus-daemon.1