[ibus/f14/master] Fixed Bug 673047 - ibus-xkb does not work in non-XKB system
Takao Fujiwara
fujiwara at fedoraproject.org
Fri Mar 11 10:35:40 UTC 2011
commit 232175ccde8c76aeaffffa5a00a8caaf2c23b538
Author: Takao Fujiwara <tfujiwar at redhat.com>
Date: Fri Mar 11 19:34:45 2011 +0900
Fixed Bug 673047 - ibus-xkb does not work in non-XKB system
Updated ibus-541492-xkb.patch
Updated ibus-HEAD.patch
Updated xinput-ibus
.gitignore | 3 ++
ibus-541492-xkb.patch | 24 +++++++++-----
ibus-HEAD.patch | 82 +++++++++++++++++++++++++++++++++++++++++++++++++
ibus.spec | 14 ++++++--
xinput-ibus | 4 ++-
5 files changed, 114 insertions(+), 13 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index b43202a..0badec1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,6 @@
ibus-1.3.6.tar.gz
/ibus-1.3.9.tar.gz
/ibus-1.3.99.20101202.tar.gz
+/ibus-1.3.99.20110206.tar.gz
+/ibus-1.3.99.20110228.tar.gz
+/gnome-shell-ibus-plugins-20110304.tar.bz2
diff --git a/ibus-541492-xkb.patch b/ibus-541492-xkb.patch
index d012ed1..2061650 100644
--- a/ibus-541492-xkb.patch
+++ b/ibus-541492-xkb.patch
@@ -2975,7 +2975,7 @@ new file mode 100644
index 0000000..1f6f8d7
--- /dev/null
+++ b/xkb/xkblib.c
-@@ -0,0 +1,297 @@
+@@ -0,0 +1,303 @@
+/* -*- mode: C; c-basic-offset: 4; indent-tabs-mode: nil; -*- */
+/* vim:set et sts=4: */
+/* bus - The Input Bus
@@ -3041,12 +3041,6 @@ index 0000000..1f6f8d7
+ unsigned long l, nitems, bytes_after;
+ unsigned char *prop = NULL;
+
-+ if (XkbGetState (xdisplay, XkbUseCoreKbd, &state) != Success) {
-+ g_warning ("Could not get state");
-+ return;
-+ }
-+ default_layout_group = state.group;
-+
+ xkb_rules_name = XInternAtom (xdisplay, "_XKB_RULES_NAMES", TRUE);
+ if (xkb_rules_name == None) {
+ g_warning ("Could not get XKB rules atom");
@@ -3076,6 +3070,12 @@ index 0000000..1f6f8d7
+ default_models = g_strsplit ((gchar *) prop, ",", -1);
+ prop += strlen ((const char *) prop) + 1;
+ default_options = g_strsplit ((gchar *) prop, ",", -1);
++
++ if (XkbGetState (xdisplay, XkbUseCoreKbd, &state) != Success) {
++ g_warning ("Could not get state");
++ return;
++ }
++ default_layout_group = state.group;
+}
+
+static Bool
@@ -3220,7 +3220,10 @@ index 0000000..1f6f8d7
+gchar *
+ibus_xkb_get_current_layout (void)
+{
-+ g_assert (default_layouts != NULL);
++ if (default_layouts == NULL) {
++ g_warning ("Your system seems not to support XKB.");
++ return NULL;
++ }
+
+ return g_strjoinv (",", (gchar **) default_layouts);
+}
@@ -3254,7 +3257,10 @@ index 0000000..1f6f8d7
+ gboolean retval;
+ gchar *layouts_line;
+
-+ g_assert (default_layouts != NULL);
++ if (default_layouts == NULL) {
++ g_warning ("Your system seems not to support XKB.");
++ return NULL;
++ }
+
+ if (layouts == NULL || g_strcmp0 (layouts, "default") == 0) {
+ layouts_line = g_strjoinv (",", (gchar **) default_layouts);
diff --git a/ibus-HEAD.patch b/ibus-HEAD.patch
index 8b13789..9f2ac84 100644
--- a/ibus-HEAD.patch
+++ b/ibus-HEAD.patch
@@ -1 +1,83 @@
+From fbdd157b2ab1e6e873818132530dd9e55e4f94dd Mon Sep 17 00:00:00 2001
+From: Peng Huang <shawn.p.huang at gmail.com>
+Date: Mon, 7 Mar 2011 10:26:04 -0500
+Subject: [PATCH] Move gtk_key_snooper_remove from function object_fini to class_fini.
+
+BUG=http://crosbug.com/12803
+TEST=Linux desktop
+
+Review URL: http://codereview.appspot.com/4267044
+---
+ client/gtk2/ibusimcontext.c | 24 +++++++++++++++---------
+ 1 files changed, 15 insertions(+), 9 deletions(-)
+
+diff --git a/client/gtk2/ibusimcontext.c b/client/gtk2/ibusimcontext.c
+index a634d0e..31a415d 100644
+--- a/client/gtk2/ibusimcontext.c
++++ b/client/gtk2/ibusimcontext.c
+@@ -91,6 +91,7 @@ static GdkWindow *_input_window = NULL;
+
+ /* functions prototype */
+ static void ibus_im_context_class_init (IBusIMContextClass *klass);
++static void ibus_im_context_class_fini (IBusIMContextClass *class);
+ static void ibus_im_context_init (GObject *obj);
+ static void ibus_im_context_finalize (GObject *obj);
+ static void ibus_im_context_reset (GtkIMContext *context);
+@@ -155,10 +156,10 @@ ibus_im_context_register_type (GTypeModu
+
+ static const GTypeInfo ibus_im_context_info = {
+ sizeof (IBusIMContextClass),
+- (GBaseInitFunc) NULL,
+- (GBaseFinalizeFunc) NULL,
++ (GBaseInitFunc) NULL,
++ (GBaseFinalizeFunc) NULL,
+ (GClassInitFunc) ibus_im_context_class_init,
+- NULL, /* class finialize */
++ (GClassFinalizeFunc) ibus_im_context_class_fini,
+ NULL, /* class data */
+ sizeof (IBusIMContext),
+ 0,
+@@ -371,6 +372,16 @@ ibus_im_context_class_init (IBusIMCo
+ }
+
+ static void
++ibus_im_context_class_fini (IBusIMContextClass *class)
++{
++ if (_key_snooper_id != 0) {
++ IDEBUG ("snooper is terminated.");
++ gtk_key_snooper_remove (_key_snooper_id);
++ _key_snooper_id = 0;
++ }
++}
++
++static void
+ ibus_im_context_init (GObject *obj)
+ {
+ IDEBUG ("%s", __FUNCTION__);
+--
+1.7.4.1
+
+From c0489ba017f298e51efe86bc7f5def1928389197 Mon Sep 17 00:00:00 2001
+From: fujiwarat <takao.fujiwara1 at gmail.com>
+Date: Fri, 11 Mar 2011 15:53:53 +0900
+Subject: [PATCH] Fix preedit_string = NULL in ibus-x11 _free_ic()
+
+---
+ client/x11/main.c | 1 +
+ 1 files changed, 1 insertions(+), 0 deletions(-)
+
+diff --git a/client/x11/main.c b/client/x11/main.c
+index a2967cc..16104de 100644
+--- a/client/x11/main.c
++++ b/client/x11/main.c
+@@ -526,6 +526,7 @@ _free_ic (gpointer data, gpointer user_data)
+ g_return_if_fail (x11ic != NULL);
+
+ g_free (x11ic->preedit_string);
++ x11ic->preedit_string = NULL;
+
+ if (x11ic->preedit_attrs) {
+ g_object_unref (x11ic->preedit_attrs);
+--
+1.7.4.1
diff --git a/ibus.spec b/ibus.spec
index 35eb3b5..5374a0d 100644
--- a/ibus.spec
+++ b/ibus.spec
@@ -11,14 +11,14 @@
Name: ibus
Version: 1.3.9
-Release: 2%{?dist}
+Release: 3%{?dist}
Summary: Intelligent Input Bus for Linux OS
License: LGPLv2+
Group: System Environment/Libraries
URL: http://code.google.com/p/ibus/
Source0: http://ibus.googlecode.com/files/%{name}-%{version}.tar.gz
Source1: xinput-ibus
-# Patch0: ibus-HEAD.patch
+Patch0: ibus-HEAD.patch
Patch1: ibus-541492-xkb.patch
Patch2: ibus-435880-surrounding-text.patch
# Workaround for gtk3 2.90.5
@@ -134,7 +134,7 @@ The ibus-devel-docs package contains developer documentation for ibus
%prep
%setup -q
-# %patch0 -p1
+%patch0 -p1
%if %have_libxkbfile
%patch1 -p1 -b .xkb
%endif
@@ -301,6 +301,14 @@ fi
%{_datadir}/gtk-doc/html/*
%changelog
+* Fri Mar 11 2011 Takao Fujiwara <tfujiwar at redhat.com> - 1.3.9-3
+- Updated ibus-541492-xkb.patch
+ Fixed Bug 673047 - ibus-xkb does not work in non-XKB system
+- Updated ibus-HEAD.patch
+ Removed snooper in class_fini
+- Updated xinput-ibus
+ Set QT_IM_MODULE=xim if ibus-qt is not installed
+
* Tue Jan 04 2011 Takao Fujiwara <tfujiwar at redhat.com> - 1.3.9-2
- Update to 1.3.9
Fixed Bug 621795 - crash in ibus_object_destroy
diff --git a/xinput-ibus b/xinput-ibus
index 3eec7fd..6a5ac4e 100644
--- a/xinput-ibus
+++ b/xinput-ibus
@@ -1,7 +1,7 @@
XIM=ibus
XIM_PROGRAM="/usr/bin/ibus-daemon"
ICON="ibus"
-XIM_ARGS="--xim"
+XIM_ARGS="-r --xim"
PREFERENCE_PROGRAM=/usr/bin/ibus-setup
SHORT_DESC="IBus"
GTK_IM_MODULE=ibus
@@ -10,4 +10,6 @@ if test -f /usr/lib/qt4/plugins/inputmethods/libqtim-ibus.so || \
test -f /usr/lib64/qt4/plugins/inputmethods/libqtim-ibus.so;
then
QT_IM_MODULE=ibus
+else
+ QT_IM_MODULE=xim
fi
More information about the scm-commits
mailing list