[ibus] Revised ibus-530711-preload-sys.patch

Takao Fujiwara fujiwara at fedoraproject.org
Fri Mar 11 09:23:47 UTC 2011


commit 193527479f281f8ad759d4fea295de75cbee10ad
Author: Takao Fujiwara <tfujiwar at redhat.com>
Date:   Fri Mar 11 18:23:28 2011 +0900

    Revised ibus-530711-preload-sys.patch

 ibus-530711-preload-sys.patch |   29 ++++++++-----
 ibus-HEAD.patch               |   95 +++++++++++++++++++++++++++++++++++++++++
 ibus.spec                     |    9 +++-
 3 files changed, 119 insertions(+), 14 deletions(-)
---
diff --git a/ibus-530711-preload-sys.patch b/ibus-530711-preload-sys.patch
index cab75a4..9a4905b 100644
--- a/ibus-530711-preload-sys.patch
+++ b/ibus-530711-preload-sys.patch
@@ -1,6 +1,6 @@
-From 4e217b71d30c4f645014e67dd083364a58bd15db Mon Sep 17 00:00:00 2001
+From 047452beffd7cb429bf4dfeb2371f120cc8041a6 Mon Sep 17 00:00:00 2001
 From: fujiwarat <takao.fujiwara1 at gmail.com>
-Date: Thu, 10 Mar 2011 15:31:55 +0900
+Date: Fri, 11 Mar 2011 16:07:09 +0900
 Subject: [PATCH] Reload preload engines until users customize the list.
 
 The idea is, if users don't customize the preload_engines with ibus-setup,
@@ -18,19 +18,19 @@ IBUS_PRELOAD_ENGINE_MODE_USER and users can customize the value
 Loading system default may spend the startup time. If you mind it,
 your dist may like to put TRUE in 'use_local_preload_engines' value.
 ---
- bus/ibusimpl.c       |  279 ++++++++++++++++++++++++++++++++++---------------
+ bus/ibusimpl.c       |  286 +++++++++++++++++++++++++++++++++++---------------
  data/ibus.schemas.in |   13 +++
  ibus/common.py       |    6 +
  setup/main.py        |   37 ++++++-
  setup/setup.ui       |   21 +++-
  src/ibustypes.h      |   10 ++
- 6 files changed, 272 insertions(+), 94 deletions(-)
+ 6 files changed, 279 insertions(+), 94 deletions(-)
 
 diff --git a/bus/ibusimpl.c b/bus/ibusimpl.c
-index 8d4ec36..f86b149 100644
+index 8d4ec36..0caa8c7 100644
 --- a/bus/ibusimpl.c
 +++ b/bus/ibusimpl.c
-@@ -144,6 +144,9 @@ static void     bus_ibus_impl_set_previo
+@@ -144,6 +144,9 @@ static void     bus_ibus_impl_set_previous_engine
  static void     bus_ibus_impl_set_preload_engines
                                                  (BusIBusImpl        *ibus,
                                                   GVariant           *value);
@@ -40,7 +40,7 @@ index 8d4ec36..f86b149 100644
  static void     bus_ibus_impl_set_use_sys_layout
                                                  (BusIBusImpl        *ibus,
                                                   GVariant           *value);
-@@ -271,6 +274,141 @@ _panel_destroy_cb (BusPanelProxy *panel,
+@@ -278,6 +281,141 @@ _panel_destroy_cb (BusPanelProxy *panel,
      g_object_unref (panel);
  }
  
@@ -182,7 +182,7 @@ index 8d4ec36..f86b149 100644
  static void
  bus_ibus_impl_set_hotkey (BusIBusImpl *ibus,
                            GQuark       hotkey,
-@@ -381,34 +519,43 @@ static void
+@@ -388,34 +526,50 @@ static void
  bus_ibus_impl_set_preload_engines (BusIBusImpl *ibus,
                                     GVariant    *value)
  {
@@ -233,8 +233,15 @@ index 8d4ec36..f86b149 100644
 -        if (component && !bus_component_is_running (component)) {
 -            bus_component_start (component, g_verbose);
 -        }
++    /* bus_ibus_impl_reload_config() sets value = NULL.
++     * bus_ibus_impl_reload_config() is always called when
++     * RequestName signal is sent so it is good to get the gconf value
++     * again when value == NULL.
++     */
 +    if (value != NULL && g_variant_classify (value) == G_VARIANT_CLASS_INT32) {
 +        preload_engine_mode = g_variant_get_int32 (value);
++    } else {
++        preload_engine_mode = _get_config_preload_engine_mode (ibus);
      }
  
 -    bus_ibus_impl_update_engines_hotkey_profile (ibus);
@@ -247,7 +254,7 @@ index 8d4ec36..f86b149 100644
  }
  
  /**
-@@ -489,89 +636,48 @@ bus_ibus_impl_set_use_global_engine (Bus
+@@ -496,89 +650,48 @@ bus_ibus_impl_set_use_global_engine (BusIBusImpl *ibus,
      }
  }
  
@@ -360,7 +367,7 @@ index 8d4ec36..f86b149 100644
  #endif
  }
  
-@@ -587,6 +693,7 @@ const static struct {
+@@ -594,6 +707,7 @@ const static struct {
      { "general/hotkey", "next_engine_in_menu",   bus_ibus_impl_set_next_engine_in_menu },
      { "general/hotkey", "previous_engine",       bus_ibus_impl_set_previous_engine },
      { "general", "preload_engines",              bus_ibus_impl_set_preload_engines },
@@ -483,7 +490,7 @@ index 7f4a040..9cdce02 100644
          try:
              self.__bus = ibus.Bus()
 diff --git a/setup/setup.ui b/setup/setup.ui
-index cddae98..edfb3a8 100644
+index f1e6d0b..562c091 100644
 --- a/setup/setup.ui
 +++ b/setup/setup.ui
 @@ -582,7 +582,22 @@
diff --git a/ibus-HEAD.patch b/ibus-HEAD.patch
index 8b13789..5336954 100644
--- a/ibus-HEAD.patch
+++ b/ibus-HEAD.patch
@@ -1 +1,96 @@
+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
+@@ -88,6 +88,7 @@ static GtkWidget *_input_widget = NULL;
+ 
+ /* functions prototype */
+ static void     ibus_im_context_class_init  (IBusIMContextClass    *class);
++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);
+@@ -152,10 +153,10 @@ ibus_im_context_register_type (GTypeModule *type_module)
+ 
+     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,
+@@ -477,6 +478,16 @@ ibus_im_context_class_init (IBusIMContextClass *class)
+         _key_snooper_id = gtk_key_snooper_install (_key_snooper_cb, NULL);
+ }
+ 
++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;
++    }
++}
++
+ /* Copied from gtk+2.0-2.20.1/modules/input/imcedilla.c to fix crosbug.com/11421.
+  * Overwrite the original Gtk+'s compose table in gtk+-2.x.y/gtk/gtkimcontextsimple.c. */
+ 
+@@ -601,12 +612,6 @@ ibus_im_context_finalize (GObject *obj)
+         pango_attr_list_unref (ibusimcontext->preedit_attrs);
+     }
+ 
+-    if (_key_snooper_id != 0) {
+-        IDEBUG ("snooper is terminated.");
+-        gtk_key_snooper_remove (_key_snooper_id);
+-        _key_snooper_id = 0;
+-    }
+-
+     G_OBJECT_CLASS(parent_class)->finalize (obj);
+ }
+ 
+-- 
+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 34d39c4..c2829c2 100644
--- a/ibus.spec
+++ b/ibus.spec
@@ -13,7 +13,7 @@
 
 Name:       ibus
 Version:    1.3.99.20110228
-Release:    1%{?dist}
+Release:    2%{?dist}
 Summary:    Intelligent Input Bus for Linux OS
 License:    LGPLv2+
 Group:      System Environment/Libraries
@@ -23,7 +23,7 @@ Source1:    xinput-ibus
 %if %have_gjsfile
 Source2:    http://fujiwara.fedorapeople.org/ibus/gnome-shell/gnome-shell-ibus-plugins-20110304.tar.bz2
 %endif
-# Patch0:     ibus-HEAD.patch
+Patch0:     ibus-HEAD.patch
 Patch1:     ibus-435880-surrounding-text.patch
 Patch2:     ibus-541492-xkb.patch
 Patch3:     ibus-530711-preload-sys.patch
@@ -143,7 +143,7 @@ The ibus-devel-docs package contains developer documentation for ibus
 %if %have_gjsfile
 bzcat %SOURCE2 | tar xf -
 %endif
-# %patch0 -p1
+%patch0 -p1
 %patch99 -p1 -b .g-s-typo
 # start surrounding patch
 %patch1 -p1 -b .surrounding
@@ -327,6 +327,9 @@ fi
 %{_datadir}/gtk-doc/html/*
 
 %changelog
+* Fri Mar 11 2011 Takao Fujiwara <tfujiwar at redhat.com> - 1.3.99.20110228-2
+- Revised ibus-530711-preload-sys.patch
+
 * Thu Mar 10 2011 Takao Fujiwara <tfujiwar at redhat.com> - 1.3.99.20110228-1
 - Updated to 1.3.99.20110228
 - Integrated the part of gjs in Bug 657165 ibus for gnome-shell.


More information about the scm-commits mailing list