public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
From: Takao Fujiwara <tfujiwar@redhat.com>
To: git-commits@fedoraproject.org
Subject: [rpms/ibus] autotool: Bumped to 1.4.99.20120822
Date: Sun, 31 May 2026 02:05:43 GMT	[thread overview]
Message-ID: <178019314366.1.3657539675192574124.rpms-ibus-fd3eb3dac051@fedoraproject.org> (raw)

            A new commit has been pushed.

            Repo   : rpms/ibus
            Branch : autotool
            Commit : fd3eb3dac051aabd6326c75d594928b4593414c7
            Author : Takao Fujiwara <tfujiwar@redhat.com>
            Date   : 2012-08-22T17:11:55+09:00
            Stats  : +364/-803 in 11 file(s)
            URL    : https://src.fedoraproject.org/rpms/ibus/c/fd3eb3dac051aabd6326c75d594928b4593414c7?branch=autotool

            Log:
            Bumped to 1.4.99.20120822

- Fixed Bug 845956 - ibus backward trigger key is not customized
- Fixed Bug 844580 - ibus-dconf does not load the system gvdb

---
diff --git a/.gitignore b/.gitignore
index b7b95c0..ff05faf 100644
--- a/.gitignore
+++ b/.gitignore
@@ -20,6 +20,7 @@ ibus-1.3.6.tar.gz
 /ibus-1.4.99.20120317.tar.gz
 /ibus-1.4.99.20120428.tar.gz
 /ibus-1.4.99.20120712.tar.gz
+/ibus-1.4.99.20120822.tar.gz
 /ibus-gjs-3.0.2.20110823.tar.gz
 /ibus-gjs-3.1.4.20110823.tar.gz
 /ibus-gjs-3.0.2.20110908.tar.gz
@@ -44,3 +45,4 @@ ibus-1.3.6.tar.gz
 /ibus-gjs-3.3.92.20120327.tar.gz
 /ibus-gjs-3.4.1.20120428.tar.gz
 /ibus-gjs-3.4.1.20120518.tar.gz
+/ibus-gjs-3.4.1.20120815.tar.gz

diff --git a/ibus-530711-preload-sys.patch b/ibus-530711-preload-sys.patch
index 05ae8e7..d78d8be 100644
--- a/ibus-530711-preload-sys.patch
+++ b/ibus-530711-preload-sys.patch
@@ -1,6 +1,6 @@
-From 9be5aced5397e3558870e4aa1a446e1aacc1730c Mon Sep 17 00:00:00 2001
+From e035e26100e9495ab83a6c3739448c3b5349321c Mon Sep 17 00:00:00 2001
 From: fujiwarat <takao.fujiwara1@gmail.com>
-Date: Tue, 17 Jul 2012 17:43:03 +0900
+Date: Wed, 15 Aug 2012 18:24:59 +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, 246 insertions(+), 7 deletions(-)
 
 diff --git a/data/ibus.schemas.in b/data/ibus.schemas.in
-index 3591687..0d127d5 100644
+index 07169ae..4086f67 100644
 --- a/data/ibus.schemas.in
 +++ b/data/ibus.schemas.in
 @@ -2,6 +2,30 @@
@@ -207,10 +207,10 @@ index 8121d62..2026172 100644
                      </child>
                    </object>
 diff --git a/src/ibustypes.h b/src/ibustypes.h
-index d916265..422eb84 100644
+index 737b3e2..8ce5a16 100644
 --- a/src/ibustypes.h
 +++ b/src/ibustypes.h
-@@ -198,6 +198,16 @@ typedef enum {
+@@ -204,6 +204,16 @@ typedef enum {
  } IBusError;
  
  /**
@@ -228,19 +228,19 @@ index d916265..422eb84 100644
   * @x: x coordinate.
   * @y: y coordinate.
 diff --git a/ui/gtk3/panel.vala b/ui/gtk3/panel.vala
-index 2ecd48b..24acd4c 100644
+index 06d1e44..3464ba8 100644
 --- a/ui/gtk3/panel.vala
 +++ b/ui/gtk3/panel.vala
-@@ -279,6 +279,8 @@ class Panel : IBus.PanelService {
+@@ -298,6 +298,8 @@ class Panel : IBus.PanelService {
          if (m_config != null) {
              m_config.value_changed.connect(config_value_changed_cb);
              m_config.watch("general", "preload_engines");
 +            m_config.watch("general", "preload_engines_inited");
 +            m_config.watch("general", "preload_engine_mode");
              m_config.watch("general", "engines_order");
-             m_config.watch("panel", "custom_font");
-             m_config.watch("panel", "use_custom_font");
-@@ -338,7 +340,136 @@ class Panel : IBus.PanelService {
+             m_config.watch("general/hotkey", "trigger_accel");
+             m_config.watch("general/hotkey", "trigger_accel_backward");
+@@ -359,7 +361,136 @@ class Panel : IBus.PanelService {
              init_gkbd();
          }
  
@@ -377,7 +377,7 @@ index 2ecd48b..24acd4c 100644
      }
  
      private void update_xkb_engines() {
-@@ -499,6 +630,11 @@ class Panel : IBus.PanelService {
+@@ -520,6 +651,11 @@ class Panel : IBus.PanelService {
                                           string section,
                                           string name,
                                           Variant variant) {

diff --git a/ibus-541492-xkb.patch b/ibus-541492-xkb.patch
index cd570ed..6acf566 100644
--- a/ibus-541492-xkb.patch
+++ b/ibus-541492-xkb.patch
@@ -1,12 +1,12 @@
-From 184f68d12049e8554fe7e44d1ca1b53f0f391f07 Mon Sep 17 00:00:00 2001
+From 8023a9fcfe7d15a3233f56bfafe182c6555ef70e Mon Sep 17 00:00:00 2001
 From: fujiwarat <takao.fujiwara1@gmail.com>
-Date: Tue, 17 Jul 2012 17:42:49 +0900
+Date: Wed, 15 Aug 2012 18:24:41 +0900
 Subject: [PATCH] Add ibus-xkb and libgnomekbd.
 
 ---
  client/x11/gdk-private.c        |    3 +-
  configure.ac                    |   60 +++++
- data/ibus.schemas.in            |  102 ++++++++
+ data/ibus.schemas.in            |   94 +++++++
  engine/Makefile.am              |    6 +
  engine/ibus-xkb/Makefile.am     |   64 +++++
  engine/ibus-xkb/ibus-xkb-main.c |  111 ++++++++
@@ -26,10 +26,11 @@ Subject: [PATCH] Add ibus-xkb and libgnomekbd.
  ui/gtk3/Xkl-1.0.metadata        |    3 +
  ui/gtk3/gkbdlayout.vala.false   |   63 +++++
  ui/gtk3/gkbdlayout.vala.true    |  111 ++++++++
- ui/gtk3/panel.vala              |  356 ++++++++++++++++++++++----
- ui/gtk3/switcher.vala           |   47 ++--
+ ui/gtk3/keybindingmanager.vala  |   14 +-
+ ui/gtk3/panel.vala              |  364 +++++++++++++++++++++++----
+ ui/gtk3/switcher.vala           |   49 ++--
  ui/gtk3/xkblayout.vala          |  466 ++++++++++++++++++++++++++++++++++
- 25 files changed, 2518 insertions(+), 608 deletions(-)
+ 26 files changed, 2539 insertions(+), 603 deletions(-)
  create mode 100644 engine/ibus-xkb/Makefile.am
  create mode 100644 engine/ibus-xkb/ibus-xkb-main.c
  create mode 100644 engine/ibus-xkb/xkblib.c
@@ -57,7 +58,7 @@ index 009a5b0..20689c3 100644
  #endif
  
 diff --git a/configure.ac b/configure.ac
-index 8498efe..2204715 100644
+index cc7d0e0..df0d4a7 100644
 --- a/configure.ac
 +++ b/configure.ac
 @@ -252,6 +252,63 @@ else
@@ -124,7 +125,7 @@ index 8498efe..2204715 100644
  # GObject introspection
  GOBJECT_INTROSPECTION_CHECK([0.6.8])
  
-@@ -514,6 +571,7 @@ src/ibusversion.h
+@@ -517,6 +574,7 @@ src/ibusversion.h
  src/tests/Makefile
  bus/Makefile
  engine/Makefile
@@ -132,7 +133,7 @@ index 8498efe..2204715 100644
  engine/simple.xml.in
  util/Makefile
  util/IMdkit/Makefile
-@@ -574,5 +632,7 @@ Build options:
+@@ -577,5 +635,7 @@ Build options:
    Panel icon                "$IBUS_ICON_KEYBOARD"
    Enable surrounding-text   $enable_surrounding_text
    Run test cases            $enable_tests
@@ -141,7 +142,7 @@ index 8498efe..2204715 100644
  ])
  
 diff --git a/data/ibus.schemas.in b/data/ibus.schemas.in
-index 53ba05c..3591687 100644
+index 53ba05c..07169ae 100644
 --- a/data/ibus.schemas.in
 +++ b/data/ibus.schemas.in
 @@ -26,6 +26,52 @@
@@ -197,7 +198,7 @@ index 53ba05c..3591687 100644
        <key>/schemas/desktop/ibus/general/hotkey/trigger</key>
        <applyto>/desktop/ibus/general/hotkey/trigger</applyto>
        <owner>ibus</owner>
-@@ -34,6 +80,62 @@
+@@ -34,6 +80,54 @@
        <default>[Control+space,Zenkaku_Hankaku,Alt+Kanji,Alt+grave,Hangul,Alt+Release+Alt_R]</default>
        <locale name="C">
          <short>Trigger shortcut keys</short>
@@ -217,23 +218,15 @@ index 53ba05c..3591687 100644
 +      </locale>
 +    </schema>
 +    <schema>
-+      <key>/schemas/desktop/ibus/general/hotkey/trigger_shift</key>
-+      <applyto>/desktop/ibus/general/hotkey/trigger_shift</applyto>
++      <key>/schemas/desktop/ibus/general/hotkey/trigger_accel_backward</key>
++      <applyto>/desktop/ibus/general/hotkey/trigger_accel_backward</applyto>
 +      <owner>ibus</owner>
 +      <type>list</type>
 +      <list_type>string</list_type>
-+      <default>[]</default>
++      <default>[&lt;Control&gt;&lt;Shift&gt;space]</default>
 +      <locale name="C">
-+        <short>This is used for gnome-shell to work shift + modifiers</short>
-+            <long>This is used for gnome-shell to work shift + modifiers
-+                  Currently gnome-shell assigns the shift reverse by
-+                  dconf key and the shift reverse works with modifiers.
-+                  But ibus supports multiple trigger keys;
-+                  &lt;Control&gt;space  (with modifiers)
-+                  Zenkaku_hankaku  (without modifiers)
-+                  I copy the modifier trigger keys here to set
-+                  the shift reverse at the moment.
-+            </long>
++        <short>Trigger reverse shortcut keys for gtk_accelerator_parse</short>
++            <long>The reverse shortcut keys for turning input method on or off</long>
 +      </locale>
 +    </schema>
 +    <schema>
@@ -845,7 +838,7 @@ index 0000000..36597c3
 +G_END_DECLS
 +#endif
 diff --git a/engine/main.vala b/engine/main.vala
-index e1fd129..377fa2f 100644
+index acfa737..afadca0 100644
 --- a/engine/main.vala
 +++ b/engine/main.vala
 @@ -21,6 +21,85 @@
@@ -2584,29 +2577,93 @@ index 0000000..adacd81
 +    }
 +    */
 +}
+diff --git a/ui/gtk3/keybindingmanager.vala b/ui/gtk3/keybindingmanager.vala
+index 2e1be4a..14b3fd3 100644
+--- a/ui/gtk3/keybindingmanager.vala
++++ b/ui/gtk3/keybindingmanager.vala
+@@ -54,15 +54,18 @@ public class KeybindingManager : GLib.Object {
+     private class Keybinding {
+         public Keybinding(uint keysym,
+                           Gdk.ModifierType modifiers,
+-                          KeybindingHandlerFunc handler) {
++                          KeybindingHandlerFunc handler,
++                          bool reverse) {
+             this.keysym = keysym;
+             this.modifiers = modifiers;
+             this.handler = handler;
++            this.reverse = reverse;
+         }
+ 
+         public uint keysym { get; set; }
+         public Gdk.ModifierType modifiers { get; set; }
+         public unowned KeybindingHandlerFunc handler { get; set; }
++        public bool reverse { get; set; }
+     }
+ 
+     /**
+@@ -70,7 +73,7 @@ public class KeybindingManager : GLib.Object {
+      *
+      * @param event passing on gdk event
+      */
+-    public delegate void KeybindingHandlerFunc(Gdk.Event event);
++    public delegate void KeybindingHandlerFunc(Gdk.Event event, bool reverse);
+ 
+ 
+     private  KeybindingManager() {
+@@ -86,7 +89,8 @@ public class KeybindingManager : GLib.Object {
+      */
+     public bool bind(uint keysym,
+                      Gdk.ModifierType modifiers,
+-                     KeybindingHandlerFunc handler) {
++                     KeybindingHandlerFunc handler,
++                     bool reverse) {
+         unowned X.Display display = Gdk.x11_get_default_xdisplay();
+ 
+         int keycode = display.keysym_to_keycode(keysym);
+@@ -97,7 +101,7 @@ public class KeybindingManager : GLib.Object {
+         grab_keycode (Gdk.Display.get_default(), keysym, modifiers);
+ 
+         // store binding
+-        Keybinding binding = new Keybinding(keysym, modifiers, handler);
++        Keybinding binding = new Keybinding(keysym, modifiers, handler, reverse);
+         m_bindings.append(binding);
+ 
+         return true;
+@@ -211,7 +215,7 @@ public class KeybindingManager : GLib.Object {
+                     if (event.key.keyval != binding.keysym ||
+                         modifiers != binding.modifiers)
+                         continue;
+-                    binding.handler(event);
++                    binding.handler(event, binding.reverse);
+                     return;
+                 }
+             }
 diff --git a/ui/gtk3/panel.vala b/ui/gtk3/panel.vala
-index 25d705d..2ecd48b 100644
+index 25d705d..06d1e44 100644
 --- a/ui/gtk3/panel.vala
 +++ b/ui/gtk3/panel.vala
-@@ -29,6 +29,17 @@ public extern const string IBUS_VERSION;
+@@ -29,6 +29,20 @@ public extern const string IBUS_VERSION;
  public extern const string BINDIR;
  
  class Panel : IBus.PanelService {
 +    private class Keybinding {
 +        public Keybinding(uint keysym,
-+                          Gdk.ModifierType modifiers) {
++                          Gdk.ModifierType modifiers,
++                          bool reverse) {
 +            this.keysym = keysym;
 +            this.modifiers = modifiers;
++            this.reverse = reverse;
 +        }
 +
 +        public uint keysym { get; set; }
 +        public Gdk.ModifierType modifiers { get; set; }
++        public bool reverse { get; set; }
 +    }
 +
      private IBus.Bus m_bus;
      private IBus.Config m_config;
      private Gtk.StatusIcon m_status_icon;
-@@ -41,10 +52,16 @@ class Panel : IBus.PanelService {
+@@ -41,10 +55,17 @@ class Panel : IBus.PanelService {
      private GLib.Pid m_setup_pid = 0;
      private Gtk.AboutDialog m_about_dialog;
      private Gtk.CssProvider m_css_provider;
@@ -2618,6 +2675,7 @@ index 25d705d..2ecd48b 100644
 +    private bool m_changed_xkb_option = false;
 +    private GLib.Timer m_changed_layout_timer;
      private const string ACCELERATOR_SWITCH_IME_FOREWARD = "<Control>space";
++    private const string ACCELERATOR_SWITCH_IME_BACKWARD = "<Control><Shift>space";
  
 -    private uint m_switch_keysym = 0;
 -    private Gdk.ModifierType m_switch_modifiers = 0;
@@ -2625,7 +2683,7 @@ index 25d705d..2ecd48b 100644
  
      public Panel(IBus.Bus bus) {
          GLib.assert(bus.is_connected());
-@@ -67,7 +84,6 @@ class Panel : IBus.PanelService {
+@@ -67,7 +88,6 @@ class Panel : IBus.PanelService {
          m_candidate_panel.page_down.connect((w) => this.page_down());
  
          m_switcher = new Switcher();
@@ -2633,11 +2691,14 @@ index 25d705d..2ecd48b 100644
  
          m_property_manager = new PropertyManager();
          m_property_manager.property_activate.connect((k, s) => {
-@@ -79,64 +95,119 @@ class Panel : IBus.PanelService {
+@@ -79,64 +99,134 @@ class Panel : IBus.PanelService {
  
      ~Panel() {
          unbind_switch_shortcut();
-+
+-    }
+ 
+-    private void bind_switch_shortcut() {
+-        var keybinding_manager = KeybindingManager.get_instance();
 +        if (HAVE_IBUS_GKBD && m_gkbdlayout != null) {
 +            m_gkbdlayout.changed.disconnect(gkbdlayout_changed_cb);
 +            m_gkbdlayout.stop_listen();
@@ -2645,10 +2706,69 @@ index 25d705d..2ecd48b 100644
 +        }
 +
 +        m_xkblayout = null;
-     }
++    }
  
+-        var accelerator = ACCELERATOR_SWITCH_IME_FOREWARD;
++    private void keybinding_manager_bind(KeybindingManager keybinding_manager,
++                                         string? accelerator,
++                                         bool reverse) {
++        uint switch_keysym = 0;
++        Gdk.ModifierType switch_modifiers = 0;
+         Gtk.accelerator_parse(accelerator,
+-                out m_switch_keysym, out m_switch_modifiers);
++                out switch_keysym, out switch_modifiers);
+ 
+-        // Map virtual modifiers to (i.e.Mod2, Mod3, ...)
++        // Map virtual modifiers to (i.e. Mod2, Mod3, ...)
+         const Gdk.ModifierType VIRTUAL_MODIFIERS = (
+                 Gdk.ModifierType.SUPER_MASK |
+                 Gdk.ModifierType.HYPER_MASK |
+                 Gdk.ModifierType.META_MASK);
+-        if ((m_switch_modifiers & VIRTUAL_MODIFIERS) != 0) {
++        if ((switch_modifiers & VIRTUAL_MODIFIERS) != 0) {
+         // workaround a bug in gdk vapi vala > 0.18
+         // https://bugzilla.gnome.org/show_bug.cgi?id=677559
+ #if VALA_0_18
+             Gdk.Keymap.get_default().map_virtual_modifiers(
+-                    ref m_switch_modifiers);
++                    ref switch_modifiers);
+ #else
+-            if ((m_switch_modifiers & Gdk.ModifierType.SUPER_MASK) != 0)
+-                m_switch_modifiers |= Gdk.ModifierType.MOD4_MASK;
+-            if ((m_switch_modifiers & Gdk.ModifierType.HYPER_MASK) != 0)
+-                m_switch_modifiers |= Gdk.ModifierType.MOD4_MASK;
++            if ((switch_modifiers & Gdk.ModifierType.SUPER_MASK) != 0)
++                switch_modifiers |= Gdk.ModifierType.MOD4_MASK;
++            if ((switch_modifiers & Gdk.ModifierType.HYPER_MASK) != 0)
++                switch_modifiers |= Gdk.ModifierType.MOD4_MASK;
+ #endif
+-            m_switch_modifiers &= ~VIRTUAL_MODIFIERS;
++            switch_modifiers &= ~VIRTUAL_MODIFIERS;
+         }
+ 
+-        if (m_switch_keysym == 0 && m_switch_modifiers == 0) {
++        if (switch_keysym == 0 && switch_modifiers == 0) {
+             warning("Parse accelerator '%s' failed!", accelerator);
+             return;
+         }
+ 
+-        keybinding_manager.bind(m_switch_keysym, m_switch_modifiers,
+-                (e) => handle_engine_switch(e, false));
++        Keybinding keybinding = new Keybinding(switch_keysym,
++                                               switch_modifiers,
++                                               reverse);
++        m_keybindings.append(keybinding);
+ 
+-        // accelerator already has Shift mask
+-        if ((m_switch_modifiers & Gdk.ModifierType.SHIFT_MASK) != 0)
+-            return;
++        keybinding_manager.bind(switch_keysym, switch_modifiers,
++                (e, _reverse) => handle_engine_switch(e, _reverse),
++                reverse);
++    }
++
 +    // ToDo: Customize the input method with ibus-setup
-     private void bind_switch_shortcut() {
++    private void bind_switch_shortcut() {
 +        string locale = GLib.Intl.setlocale(GLib.LocaleCategory.ALL,
 +                                            null);
 +        if (locale == null) {
@@ -2683,86 +2803,31 @@ index 25d705d..2ecd48b 100644
 +            }
 +        }
 +
-         var keybinding_manager = KeybindingManager.get_instance();
- 
--        var accelerator = ACCELERATOR_SWITCH_IME_FOREWARD;
--        Gtk.accelerator_parse(accelerator,
--                out m_switch_keysym, out m_switch_modifiers);
--
--        // Map virtual modifiers to (i.e.Mod2, Mod3, ...)
--        const Gdk.ModifierType VIRTUAL_MODIFIERS = (
--                Gdk.ModifierType.SUPER_MASK |
--                Gdk.ModifierType.HYPER_MASK |
--                Gdk.ModifierType.META_MASK);
--        if ((m_switch_modifiers & VIRTUAL_MODIFIERS) != 0) {
--        // workaround a bug in gdk vapi vala > 0.18
--        // https://bugzilla.gnome.org/show_bug.cgi?id=677559
++        var keybinding_manager = KeybindingManager.get_instance();
++
 +        foreach (var accelerator in ACCELERATOR_IME_HOTKEYS) {
-+            uint switch_keysym = 0;
-+            Gdk.ModifierType switch_modifiers = 0;
-+            Gtk.accelerator_parse(accelerator,
-+                    out switch_keysym, out switch_modifiers);
-+
-+            // Map virtual modifiers to (i.e. Mod2, Mod3, ...)
-+            const Gdk.ModifierType VIRTUAL_MODIFIERS = (
-+                    Gdk.ModifierType.SUPER_MASK |
-+                    Gdk.ModifierType.HYPER_MASK |
-+                    Gdk.ModifierType.META_MASK);
-+            if ((switch_modifiers & VIRTUAL_MODIFIERS) != 0) {
-+            // workaround a bug in gdk vapi vala > 0.18
-+            // https://bugzilla.gnome.org/show_bug.cgi?id=677559
- #if VALA_0_18
--            Gdk.Keymap.get_default().map_virtual_modifiers(
--                    ref m_switch_modifiers);
-+                Gdk.Keymap.get_default().map_virtual_modifiers(
-+                        ref switch_modifiers);
- #else
--            if ((m_switch_modifiers & Gdk.ModifierType.SUPER_MASK) != 0)
--                m_switch_modifiers |= Gdk.ModifierType.MOD4_MASK;
--            if ((m_switch_modifiers & Gdk.ModifierType.HYPER_MASK) != 0)
--                m_switch_modifiers |= Gdk.ModifierType.MOD4_MASK;
-+                if ((switch_modifiers & Gdk.ModifierType.SUPER_MASK) != 0)
-+                    switch_modifiers |= Gdk.ModifierType.MOD4_MASK;
-+                if ((switch_modifiers & Gdk.ModifierType.HYPER_MASK) != 0)
-+                    switch_modifiers |= Gdk.ModifierType.MOD4_MASK;
- #endif
--            m_switch_modifiers &= ~VIRTUAL_MODIFIERS;
--        }
-+                switch_modifiers &= ~VIRTUAL_MODIFIERS;
-+            }
- 
--        if (m_switch_keysym == 0 && m_switch_modifiers == 0) {
--            warning("Parse accelerator '%s' failed!", accelerator);
--            return;
--        }
-+            if (switch_keysym == 0 && switch_modifiers == 0) {
-+                warning("Parse accelerator '%s' failed!", accelerator);
-+                continue;
-+            }
- 
--        keybinding_manager.bind(m_switch_keysym, m_switch_modifiers,
--                (e) => handle_engine_switch(e, false));
-+            Keybinding keybinding = new Keybinding(switch_keysym,
-+                                                   switch_modifiers);
-+            m_keybindings.append(keybinding);
- 
--        // accelerator already has Shift mask
--        if ((m_switch_modifiers & Gdk.ModifierType.SHIFT_MASK) != 0)
--            return;
-+            keybinding_manager.bind(switch_keysym, switch_modifiers,
-+                    (e) => handle_engine_switch(e, false));
++            keybinding_manager_bind(keybinding_manager, accelerator, false);
++        }
++
++        ACCELERATOR_IME_HOTKEYS = {};
++        ACCELERATOR_IME_HOTKEYS += ACCELERATOR_SWITCH_IME_BACKWARD;
  
 -        keybinding_manager.bind(m_switch_keysym,
 -                m_switch_modifiers | Gdk.ModifierType.SHIFT_MASK,
 -                (e) => handle_engine_switch(e, true));
-+            // accelerator already has Shift mask
-+            if ((switch_modifiers & Gdk.ModifierType.SHIFT_MASK) != 0) {
-+                continue;
++        if (m_config != null) {
++            GLib.Variant variant = m_config.get_value("general/hotkey",
++                                                      "trigger_accel_backward");
++            if (variant != null) {
++                ACCELERATOR_IME_HOTKEYS = {};
++                for (int i = 0; i < variant.n_children(); i++) {
++                    ACCELERATOR_IME_HOTKEYS += variant.get_child_value(i).dup_string();
++                }
 +            }
++        }
 +
-+            keybinding_manager.bind(switch_keysym,
-+                    switch_modifiers | Gdk.ModifierType.SHIFT_MASK,
-+                    (e) => handle_engine_switch(e, true));
++        foreach (var accelerator in ACCELERATOR_IME_HOTKEYS) {
++            keybinding_manager_bind(keybinding_manager, accelerator, true);
 +        }
      }
  
@@ -2785,14 +2850,12 @@ index 25d705d..2ecd48b 100644
 -        m_switch_modifiers = 0;
 +            keybinding_manager.unbind(keybinding.keysym,
 +                                      keybinding.modifiers);
-+            keybinding_manager.unbind(keybinding.keysym,
-+                                      keybinding.modifiers | Gdk.ModifierType.SHIFT_MASK);
 +            m_keybindings.remove(keybinding);
 +        }
      }
  
      private void set_custom_font() {
-@@ -204,12 +275,14 @@ class Panel : IBus.PanelService {
+@@ -204,12 +294,16 @@ class Panel : IBus.PanelService {
          }
  
          m_config = config;
@@ -2801,13 +2864,15 @@ index 25d705d..2ecd48b 100644
              m_config.value_changed.connect(config_value_changed_cb);
              m_config.watch("general", "preload_engines");
              m_config.watch("general", "engines_order");
++            m_config.watch("general/hotkey", "trigger_accel");
++            m_config.watch("general/hotkey", "trigger_accel_backward");
              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"));
          } else {
-@@ -219,6 +292,192 @@ class Panel : IBus.PanelService {
+@@ -219,6 +313,192 @@ class Panel : IBus.PanelService {
          set_custom_font();
      }
  
@@ -3000,7 +3065,7 @@ index 25d705d..2ecd48b 100644
      private void switch_engine(int i, bool force = false) {
          GLib.assert(i >= 0 && i < m_engines.length);
  
-@@ -233,15 +492,7 @@ class Panel : IBus.PanelService {
+@@ -233,15 +513,7 @@ class Panel : IBus.PanelService {
              return;
          }
          // set xkb layout
@@ -3017,7 +3082,21 @@ index 25d705d..2ecd48b 100644
      }
  
      private void config_value_changed_cb(IBus.Config config,
-@@ -272,8 +523,7 @@ class Panel : IBus.PanelService {
+@@ -253,6 +525,13 @@ class Panel : IBus.PanelService {
+             return;
+         }
+ 
++        if (section == "general/hotkey" &&
++            name.length >= 13 && name[0:13] == "trigger_accel") {
++            unbind_switch_shortcut();
++            bind_switch_shortcut();
++            return;
++        }
++
+         if (section == "panel" && (name == "custom_font" ||
+                                    name == "use_custom_font")) {
+             set_custom_font();
+@@ -272,8 +551,7 @@ class Panel : IBus.PanelService {
                  event, primary_modifiers);
          if (pressed) {
              int i = revert ? m_engines.length - 1 : 1;
@@ -3028,22 +3107,25 @@ index 25d705d..2ecd48b 100644
                  debug("switch cancelled");
              } else {
 diff --git a/ui/gtk3/switcher.vala b/ui/gtk3/switcher.vala
-index ea56c07..f209e7f 100644
+index ea56c07..6035471 100644
 --- a/ui/gtk3/switcher.vala
 +++ b/ui/gtk3/switcher.vala
-@@ -71,13 +71,23 @@ class Switcher : Gtk.Window {
+@@ -71,13 +71,26 @@ class Switcher : Gtk.Window {
          public string longname { get; set; }
      }
  
 +    private class Keybinding {
 +        public Keybinding(uint keysym,
-+                          Gdk.ModifierType modifiers) {
++                          Gdk.ModifierType modifiers,
++                          bool reverse) {
 +            this.keysym = keysym;
 +            this.modifiers = modifiers;
++            this.reverse = reverse;
 +        }
 +
 +        public uint keysym { get; set; }
 +        public Gdk.ModifierType modifiers { get; set; }
++        public bool reverse { get; set; }
 +    }
 +
      private Gtk.Box m_box;
@@ -3057,7 +3139,7 @@ index ea56c07..f209e7f 100644
      private Gdk.ModifierType m_primary_modifier;
      private GLib.MainLoop m_loop;
      private int m_result;
-@@ -113,19 +123,17 @@ class Switcher : Gtk.Window {
+@@ -113,19 +126,17 @@ class Switcher : Gtk.Window {
          grab_focus();
      }
  
@@ -3080,7 +3162,7 @@ index ea56c07..f209e7f 100644
  
          update_engines(engines);
          m_result = 0;
-@@ -310,23 +318,26 @@ class Switcher : Gtk.Window {
+@@ -310,23 +321,25 @@ class Switcher : Gtk.Window {
      public override bool key_press_event(Gdk.EventKey e) {
          bool retval = true;
          Gdk.EventKey *pe = &e;
@@ -3088,29 +3170,28 @@ index ea56c07..f209e7f 100644
  
 -        do {
 -            uint modifiers = KeybindingManager.MODIFIER_FILTER & pe->state;
--
--            if ((modifiers != m_modifiers) &&
--                (modifiers != (m_modifiers | Gdk.ModifierType.SHIFT_MASK))) {
--                break;
--            }
 +        for (unowned GLib.List<Keybinding> keybindings = m_keybindings;
 +             keybindings != null;
 +             keybindings = keybindings.next) {
 +            Keybinding keybinding = keybindings.data;
  
+-            if ((modifiers != m_modifiers) &&
+-                (modifiers != (m_modifiers | Gdk.ModifierType.SHIFT_MASK))) {
+-                break;
+-            }
+-
 -            if (pe->keyval == m_keyval) {
 -                if (modifiers == m_modifiers)
-+            if (pe->keyval == keybinding.keysym) {
-+                if (modifiers == (uint) keybinding.modifiers) {
++            if (pe->keyval == keybinding.keysym &&
++                modifiers == (uint) keybinding.modifiers) {
++                if (!keybinding.reverse) {
                      next_engine();
 -                else // modififers == m_modifiers | SHIFT_MASK
-+                    return true;
-+                } else if (modifiers ==
-+                        ((uint) keybinding.modifiers | Gdk.ModifierType.SHIFT_MASK)) {
++                } else {
                      previous_engine();
 -                break;
-+                    return true;
 +                }
++                return true;
              }
 +        }
  

diff --git a/ibus-810211-no-switch-by-no-trigger.patch b/ibus-810211-no-switch-by-no-trigger.patch
new file mode 100644
index 0000000..dc6ff16
--- /dev/null
+++ b/ibus-810211-no-switch-by-no-trigger.patch
@@ -0,0 +1,36 @@
+From fcfb99cfe6d83974c43bd41a1544d7a16460240f Mon Sep 17 00:00:00 2001
+From: fujiwarat <takao.fujiwara1@gmail.com>
+Date: Tue, 17 Jul 2012 14:35:17 +0900
+Subject: [PATCH] Fix not to switch engines by non-trigger keys.
+
+---
+ ui/gtk3/switcher.vala |    6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/ui/gtk3/switcher.vala b/ui/gtk3/switcher.vala
+index b543a8f..ea56c07 100644
+--- a/ui/gtk3/switcher.vala
++++ b/ui/gtk3/switcher.vala
+@@ -128,6 +128,7 @@ class Switcher : Gtk.Window {
+                 state & KeybindingManager.MODIFIER_FILTER);
+ 
+         update_engines(engines);
++        m_result = 0;
+         m_selected_engine = index;
+         m_label.set_text(m_buttons[index].longname);
+         m_buttons[index].grab_focus();
+@@ -343,6 +344,11 @@ class Switcher : Gtk.Window {
+                     break;
+                 default:
+                     debug("0x%04x", pe->keyval);
++                    if (m_loop != null) {
++                        m_loop.quit();
++                        m_loop = null;
++                    }
++                    retval = false;
+                     break;
+             }
+         } while (false);
+-- 
+1.7.10.4
+

diff --git a/ibus-HEAD.patch b/ibus-HEAD.patch
index ff4a8eb..8b13789 100644
--- a/ibus-HEAD.patch
+++ b/ibus-HEAD.patch
@@ -1,575 +1 @@
-From f453bf83f502d8b1e2b6f07cf669c14cbcfe008e Mon Sep 17 00:00:00 2001
-From: Peng Huang <shawn.p.huang@gmail.com>
-Date: Thu, 12 Jul 2012 16:41:30 -0400
-Subject: [PATCH] IBusBus: honor new connect-async prop in the socket monitor
- callback
-
-I think we should make use of the async connection here if the
-property is set.
-
-But we also need a new flag for ongoing async connection attempts
-because the socket monitor callback may be called several times before
-the connection is established.
-
-BUG=http://code.google.com/p/ibus/issues/detail?id=1482
-TEST=
-
-Review URL: https://codereview.appspot.com/6346090
----
- src/ibusbus.c |  149 +++++++++++++++++++++++++++++++++++----------------------
- 1 file changed, 93 insertions(+), 56 deletions(-)
-
-diff --git a/src/ibusbus.c b/src/ibusbus.c
-index fc3c11b..9118020 100644
---- a/src/ibusbus.c
-+++ b/src/ibusbus.c
-@@ -60,6 +60,8 @@ struct _IBusBusPrivate {
-     IBusConfig *config;
-     gchar *unique_name;
-     gboolean connect_async;
-+    gchar *bus_address;
-+    GCancellable *cancellable;
- };
- 
- static guint    bus_signals[LAST_SIGNAL] = { 0 };
-@@ -103,6 +105,8 @@ static void      ibus_bus_get_property           (IBusBus                *bus,
-                                                   GValue                 *value,
-                                                   GParamSpec             *pspec);
- 
-+static void     ibus_bus_close_connection        (IBusBus                *bus);
-+
- G_DEFINE_TYPE (IBusBus, ibus_bus, IBUS_TYPE_OBJECT)
- 
- static void
-@@ -270,56 +274,57 @@ _connection_closed_cb (GDBusConnection  *connection,
-          * However we think the error message is almost harmless. */
-         g_debug ("_connection_closed_cb: %s", error->message);
-     }
-+    ibus_bus_close_connection (bus);
-+}
- 
--    g_assert (bus->priv->connection == connection);
--    g_signal_handlers_disconnect_by_func (bus->priv->connection,
--                                          G_CALLBACK (_connection_closed_cb),
--                                          bus);
--    g_object_unref (bus->priv->connection);
--    bus->priv->connection = NULL;
--
-+static void
-+ibus_bus_close_connection (IBusBus *bus)
-+{
-     g_free (bus->priv->unique_name);
-     bus->priv->unique_name = NULL;
- 
-     bus->priv->watch_dbus_signal_id = 0;
-     bus->priv->watch_ibus_signal_id = 0;
- 
--    g_signal_emit (bus, bus_signals[DISCONNECTED], 0);
--}
-+    g_free (bus->priv->bus_address);
-+    bus->priv->bus_address = NULL;
-+
-+    /* Cancel ongoing connect request. */
-+    g_cancellable_cancel (bus->priv->cancellable);
-+    g_cancellable_reset (bus->priv->cancellable);
- 
--static void
--ibus_bus_disconnect (IBusBus *bus)
--{
-     /* unref the old connection at first */
-     if (bus->priv->connection != NULL) {
-         g_signal_handlers_disconnect_by_func (bus->priv->connection,
-                                               G_CALLBACK (_connection_closed_cb),
-                                               bus);
-+        if (!g_dbus_connection_is_closed(bus->priv->connection))
-+            g_dbus_connection_close(bus->priv->connection, NULL, NULL, NULL);
-         g_object_unref (bus->priv->connection);
-         bus->priv->connection = NULL;
-+        g_signal_emit (bus, bus_signals[DISCONNECTED], 0);
-     }
- }
- 
- static void
--ibus_bus_connect_finish (IBusBus *bus)
--{
--    if (bus->priv->connection) {
--        /* FIXME */
--        ibus_bus_hello (bus);
--
--        g_signal_connect (bus->priv->connection,
--                          "closed",
--                          (GCallback) _connection_closed_cb,
--                          bus);
--        if (bus->priv->watch_dbus_signal) {
--            ibus_bus_watch_dbus_signal (bus);
--        }
--        if (bus->priv->watch_ibus_signal) {
--            ibus_bus_watch_ibus_signal (bus);
--        }
--
--        g_signal_emit (bus, bus_signals[CONNECTED], 0);
-+ibus_bus_connect_completed (IBusBus *bus)
-+{
-+    g_assert (bus->priv->connection);
-+    /* FIXME */
-+    ibus_bus_hello (bus);
-+
-+    g_signal_connect (bus->priv->connection,
-+                      "closed",
-+                      (GCallback) _connection_closed_cb,
-+                      bus);
-+    if (bus->priv->watch_dbus_signal) {
-+        ibus_bus_watch_dbus_signal (bus);
-+    }
-+    if (bus->priv->watch_ibus_signal) {
-+        ibus_bus_watch_ibus_signal (bus);
-     }
-+
-+    g_signal_emit (bus, bus_signals[CONNECTED], 0);
- }
- 
- static void
-@@ -333,7 +338,8 @@ _bus_connect_async_cb (GObject      *source_object,
-     IBusBus *bus   = IBUS_BUS (user_data);
-     GError  *error = NULL;
- 
--    bus->priv->connection = g_dbus_connection_new_for_address_finish (res, &error);
-+    bus->priv->connection =
-+                g_dbus_connection_new_for_address_finish (res, &error);
- 
-     if (error != NULL) {
-         g_warning ("Unable to connect to ibus: %s", error->message);
-@@ -341,8 +347,13 @@ _bus_connect_async_cb (GObject      *source_object,
-         error = NULL;
-     }
- 
--    if (bus->priv->connection)
--        ibus_bus_connect_finish (bus);
-+    if (bus->priv->connection != NULL) {
-+        ibus_bus_connect_completed (bus);
-+    }
-+    else {
-+        g_free (bus->priv->bus_address);
-+        bus->priv->bus_address = NULL;
-+    }
- 
-     /* unref the ref from ibus_bus_connect */
-     g_object_unref (bus);
-@@ -351,32 +362,52 @@ _bus_connect_async_cb (GObject      *source_object,
- static void
- ibus_bus_connect_async (IBusBus *bus)
- {
--    ibus_bus_disconnect (bus);
-+    const gchar *bus_address = ibus_get_address ();
- 
--    if (ibus_get_address () != NULL) {
--        g_object_ref (bus);
--        g_dbus_connection_new_for_address (ibus_get_address (),
--                                           G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_CLIENT |
--                                           G_DBUS_CONNECTION_FLAGS_MESSAGE_BUS_CONNECTION,
--                                           NULL, NULL,
--                                           _bus_connect_async_cb, bus);
--    }
-+    if (bus_address == NULL)
-+        return;
-+
-+    if (g_strcmp0 (bus->priv->bus_address, bus_address) == 0)
-+        return;
-+
-+    /* Close current connection and cancel ongoing connect request. */
-+    ibus_bus_close_connection (bus);
-+
-+    bus->priv->bus_address = g_strdup (bus_address);
-+    g_object_ref (bus);
-+    g_dbus_connection_new_for_address (
-+            bus_address,
-+            G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_CLIENT |
-+            G_DBUS_CONNECTION_FLAGS_MESSAGE_BUS_CONNECTION,
-+            NULL,
-+            bus->priv->cancellable,
-+            _bus_connect_async_cb, bus);
- }
- 
- static void
- ibus_bus_connect (IBusBus *bus)
- {
--    ibus_bus_disconnect (bus);
-+    const gchar *bus_address = ibus_get_address ();
- 
--    if (ibus_get_address () != NULL) {
--        bus->priv->connection =
--            g_dbus_connection_new_for_address_sync (ibus_get_address (),
--                                                    G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_CLIENT |
--                                                    G_DBUS_CONNECTION_FLAGS_MESSAGE_BUS_CONNECTION,
--                                                    NULL, NULL, NULL);
--    }
-+    if (bus_address == NULL)
-+        return;
- 
--    ibus_bus_connect_finish (bus);
-+    if (g_strcmp0 (bus_address, bus->priv->bus_address) == 0 &&
-+        bus->priv->connection != NULL)
-+        return;
-+
-+    /* Close current connection and cancel ongoing connect request. */
-+    ibus_bus_close_connection (bus);
-+
-+    bus->priv->connection = g_dbus_connection_new_for_address_sync (
-+            bus_address,
-+            G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_CLIENT |
-+            G_DBUS_CONNECTION_FLAGS_MESSAGE_BUS_CONNECTION,
-+            NULL, NULL, NULL);
-+    if (bus->priv->connection) {
-+        bus->priv->bus_address = g_strdup (bus_address);
-+        ibus_bus_connect_completed (bus);
-+    }
- }
- 
- static void
-@@ -391,10 +422,7 @@ _changed_cb (GFileMonitor       *monitor,
-         event_type != G_FILE_MONITOR_EVENT_DELETED)
-         return;
- 
--    if (ibus_bus_is_connected (bus))
--        return;
--
--    ibus_bus_connect (bus);
-+    ibus_bus_connect_async (bus);
- }
- 
- static void
-@@ -414,6 +442,8 @@ ibus_bus_init (IBusBus *bus)
-     bus->priv->watch_ibus_signal_id = 0;
-     bus->priv->unique_name = NULL;
-     bus->priv->connect_async = FALSE;
-+    bus->priv->bus_address = NULL;
-+    bus->priv->cancellable = g_cancellable_new ();
- 
-     path = g_path_get_dirname (ibus_get_socket_path ());
- 
-@@ -523,6 +553,13 @@ ibus_bus_destroy (IBusObject *object)
-     g_free (bus->priv->unique_name);
-     bus->priv->unique_name = NULL;
- 
-+    g_free (bus->priv->bus_address);
-+    bus->priv->bus_address = NULL;
-+
-+    g_cancellable_cancel (bus->priv->cancellable);
-+    g_object_unref (bus->priv->cancellable);
-+    bus->priv->cancellable = NULL;
-+
-     IBUS_OBJECT_CLASS (ibus_bus_parent_class)->destroy (object);
- }
- 
-@@ -1621,7 +1658,7 @@ ibus_bus_get_engines_by_names (IBusBus             *bus,
-                                  G_VARIANT_TYPE ("(av)"));
-     if (result == NULL)
-         return NULL;
--    
-+
-     GArray *array = g_array_new (TRUE, TRUE, sizeof (IBusEngineDesc *));
-     GVariantIter *iter = NULL;
-     g_variant_get (result, "(av)", &iter);
--- 
-1.7.10.4
-
-From a454448111650c3e92fc9ba65c26a57adc9c3c6c Mon Sep 17 00:00:00 2001
-From: fujiwarat <takao.fujiwara1@gmail.com>
-Date: Thu, 19 Jul 2012 09:57:01 +0900
-Subject: [PATCH] Support dconf 0.13.4
-
-TEST=Manually
-
-Review URL: https://codereview.appspot.com/6426044
----
- conf/dconf/Makefile.am      |    2 +-
- conf/dconf/config-private.h |   56 +++++++++++++++++++++++++++++++++++++++++++
- conf/dconf/config.c         |   26 +++++++++++++++++++-
- conf/dconf/config.h         |   47 ------------------------------------
- conf/dconf/main.c           |    2 +-
- configure.ac                |    3 +++
- 6 files changed, 86 insertions(+), 50 deletions(-)
- create mode 100644 conf/dconf/config-private.h
- delete mode 100644 conf/dconf/config.h
-
-diff --git a/conf/dconf/Makefile.am b/conf/dconf/Makefile.am
-index 148ba62..f0e24b0 100644
---- a/conf/dconf/Makefile.am
-+++ b/conf/dconf/Makefile.am
-@@ -29,7 +29,7 @@ libexec_PROGRAMS = \
- ibus_dconf_SOURCES = \
- 	main.c \
- 	config.c \
--	config.h \
-+	config-private.h \
- 	$(NULL)
- ibus_dconf_CFLAGS = \
- 	@GLIB2_CFLAGS@ \
-diff --git a/conf/dconf/config-private.h b/conf/dconf/config-private.h
-new file mode 100644
-index 0000000..9ba4fd5
---- /dev/null
-+++ b/conf/dconf/config-private.h
-@@ -0,0 +1,56 @@
-+/* -*- mode: C; c-basic-offset: 4; indent-tabs-mode: nil; -*- */
-+/* vim:set et sts=4: */
-+/* ibus - The Input Bus
-+ * Copyright (C) 2008-2010 Peng Huang <shawn.p.huang@gmail.com>
-+ * Copyright (C) 2008-2010 Red Hat, Inc.
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License as published by the Free Software Foundation; either
-+ * version 2 of the License, or (at your option) any later version.
-+ *
-+ * This library is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+ * Lesser General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the
-+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-+ * Boston, MA 02111-1307, USA.
-+ */
-+#ifndef __CONFIG_DCONF_H__
-+#define __CONFIG_DCONF_H__
-+
-+#ifdef HAVE_CONFIG_H
-+#  include <config.h>
-+#endif
-+
-+#include <ibus.h>
-+#ifdef DCONF_0_13_4
-+#  include <client/dconf-client.h>
-+#  include <common/dconf-paths.h>
-+#else
-+#  include <dconf/dconf.h>
-+#endif
-+
-+#define IBUS_TYPE_CONFIG_DCONF            \
-+    (ibus_config_dconf_get_type ())
-+#define IBUS_CONFIG_DCONF(obj)            \
-+    (G_TYPE_CHECK_INSTANCE_CAST ((obj), IBUS_TYPE_CONFIG_DCONF, IBusConfigDConf))
-+#define IBUS_CONFIG_DCONF_CLASS(klass)     \
-+    (G_TYPE_CHECK_CLASS_CAST ((klass), IBUS_TYPE_CONFIG_DCONF, IBusConfigDConfClass))
-+#define IBUS_IS_CONFIG_DCONF(obj)          \
-+    (G_TYPE_CHECK_INSTANCE_TYPE ((obj), IBUS_TYPE_CONFIG_DCONF))
-+#define IBUS_IS_CONFIG_DCONF_CLASS(klass)  \
-+    (G_TYPE_CHECK_CLASS_TYPE ((klass), IBUS_TYPE_CONFIG_DCONF))
-+#define IBUS_CONFIG_DCONF_GET_CLASS(obj)   \
-+    (G_TYPE_INSTANCE_GET_CLASS ((obj), IBUS_TYPE_CONFIG_DCONF, IBusConfigDConfClass))
-+
-+typedef struct _IBusConfigDConf IBusConfigDConf;
-+typedef struct _IBusConfigDConfClass IBusConfigDConfClass;
-+
-+GType            ibus_config_dconf_get_type (void);
-+IBusConfigDConf *ibus_config_dconf_new      (GDBusConnection *connection);
-+
-+#endif
-diff --git a/conf/dconf/config.c b/conf/dconf/config.c
-index faca932..44d7031 100644
---- a/conf/dconf/config.c
-+++ b/conf/dconf/config.c
-@@ -23,7 +23,7 @@
- 
- #include <string.h>
- #include <ibus.h>
--#include "config.h"
-+#include "config-private.h"
- 
- #define DCONF_PREFIX "/desktop/ibus"
- #define DCONF_PRESERVE_NAME_PREFIXES_KEY \
-@@ -159,12 +159,19 @@ static void
- _watch_func (DConfClient         *client,
-              const gchar         *gpath,
-              const gchar * const *items,
-+#ifndef DCONF_0_13_4
-              gint                 n_items,
-+#endif
-              const gchar         *tag,
-              IBusConfigDConf     *config)
- {
-     gchar **gkeys = NULL;
-     gint i;
-+#ifdef DCONF_0_13_4
-+    gint n_items;
-+
-+    n_items = g_strv_length ((gchar **)items);
-+#endif
- 
-     g_return_if_fail (gpath != NULL);
-     g_return_if_fail (n_items >= 0);
-@@ -231,6 +238,14 @@ static void
- ibus_config_dconf_init (IBusConfigDConf *config)
- {
-     GVariant *variant;
-+#ifdef DCONF_0_13_4
-+    config->client = dconf_client_new ();
-+
-+    g_signal_connect (config->client, "changed",
-+                      G_CALLBACK (_watch_func), config);
-+
-+    dconf_client_watch_fast (config->client, DCONF_PREFIX"/");
-+#else
-     GError *error;
- 
-     config->client = dconf_client_new ("ibus",
-@@ -241,6 +256,7 @@ ibus_config_dconf_init (IBusConfigDConf *config)
-     error = NULL;
-     if (!dconf_client_watch (config->client, DCONF_PREFIX"/", NULL, &error))
-         g_warning ("Can not watch dconf path %s", DCONF_PREFIX"/");
-+#endif
- 
-     config->preserve_name_prefixes = NULL;
-     variant = dconf_client_read (config->client,
-@@ -265,9 +281,13 @@ static void
- ibus_config_dconf_destroy (IBusConfigDConf *config)
- {
-     if (config->client) {
-+#ifdef DCONF_0_13_4
-+        dconf_client_unwatch_fast (config->client, DCONF_PREFIX"/");
-+#else
-         GError *error = NULL;
-         if (!dconf_client_unwatch (config->client, DCONF_PREFIX"/", NULL, &error))
-             g_warning ("Can not unwatch dconf path %s", DCONF_PREFIX"/");
-+#endif
- 
-         g_object_unref (config->client);
-         config->client = NULL;
-@@ -307,12 +327,16 @@ ibus_config_dconf_set_value (IBusConfigService *config,
-         g_free (gname);
-     }
- 
-+#ifdef DCONF_0_13_4
-+    retval = dconf_client_write_fast (client, gkey, value, error);
-+#else
-     retval = dconf_client_write (client,
-                                  gkey,
-                                  value,
-                                  NULL,   /* tag */
-                                  NULL,   /* cancellable */
-                                  error);
-+#endif
-     g_free (gkey);
- 
-     return retval;
-diff --git a/conf/dconf/config.h b/conf/dconf/config.h
-deleted file mode 100644
-index 9f602d6..0000000
---- a/conf/dconf/config.h
-+++ /dev/null
-@@ -1,47 +0,0 @@
--/* -*- mode: C; c-basic-offset: 4; indent-tabs-mode: nil; -*- */
--/* vim:set et sts=4: */
--/* ibus - The Input Bus
-- * Copyright (C) 2008-2010 Peng Huang <shawn.p.huang@gmail.com>
-- * Copyright (C) 2008-2010 Red Hat, Inc.
-- *
-- * This library is free software; you can redistribute it and/or
-- * modify it under the terms of the GNU Lesser General Public
-- * License as published by the Free Software Foundation; either
-- * version 2 of the License, or (at your option) any later version.
-- *
-- * This library is distributed in the hope that it will be useful,
-- * but WITHOUT ANY WARRANTY; without even the implied warranty of
-- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-- * Lesser General Public License for more details.
-- *
-- * You should have received a copy of the GNU Lesser General Public
-- * License along with this library; if not, write to the
-- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- * Boston, MA 02111-1307, USA.
-- */
--#ifndef __CONFIG_DCONF_H__
--#define __CONFIG_DCONF_H__
--
--#include <ibus.h>
--#include <dconf/dconf.h>
--
--#define IBUS_TYPE_CONFIG_DCONF            \
--    (ibus_config_dconf_get_type ())
--#define IBUS_CONFIG_DCONF(obj)            \
--    (G_TYPE_CHECK_INSTANCE_CAST ((obj), IBUS_TYPE_CONFIG_DCONF, IBusConfigDConf))
--#define IBUS_CONFIG_DCONF_CLASS(klass)     \
--    (G_TYPE_CHECK_CLASS_CAST ((klass), IBUS_TYPE_CONFIG_DCONF, IBusConfigDConfClass))
--#define IBUS_IS_CONFIG_DCONF(obj)          \
--    (G_TYPE_CHECK_INSTANCE_TYPE ((obj), IBUS_TYPE_CONFIG_DCONF))
--#define IBUS_IS_CONFIG_DCONF_CLASS(klass)  \
--    (G_TYPE_CHECK_CLASS_TYPE ((klass), IBUS_TYPE_CONFIG_DCONF))
--#define IBUS_CONFIG_DCONF_GET_CLASS(obj)   \
--    (G_TYPE_INSTANCE_GET_CLASS ((obj), IBUS_TYPE_CONFIG_DCONF, IBusConfigDConfClass))
--
--typedef struct _IBusConfigDConf IBusConfigDConf;
--typedef struct _IBusConfigDConfClass IBusConfigDConfClass;
--
--GType            ibus_config_dconf_get_type (void);
--IBusConfigDConf *ibus_config_dconf_new      (GDBusConnection *connection);
--
--#endif
-diff --git a/conf/dconf/main.c b/conf/dconf/main.c
-index 1b69baa..bffe983 100644
---- a/conf/dconf/main.c
-+++ b/conf/dconf/main.c
-@@ -23,7 +23,7 @@
- #include <ibus.h>
- #include <stdlib.h>
- #include <locale.h>
--#include "config.h"
-+#include "config-private.h"
- 
- static IBusBus *bus = NULL;
- static IBusConfigDConf *config = NULL;
-diff --git a/configure.ac b/configure.ac
-index 8498efe..cc7d0e0 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -327,6 +327,9 @@ if test x"$enable_dconf" = x"yes"; then
-         [dconf >= 0.7.5], ,
-         enable_dconf=no
-     )
-+    PKG_CHECK_EXISTS([dconf >= 0.13.4],
-+        [AC_DEFINE(DCONF_0_13_4, TRUE, [dconf is 0.13.4 or later])],
-+        [])
-     # check glib-compile-schemas
-     GLIB_GSETTINGS
- fi
--- 
-1.7.10.4
-
-From 52fbf82dd1babc0d8de7be0f5bb6de622c069b4d Mon Sep 17 00:00:00 2001
-From: fujiwarat <takao.fujiwara1@gmail.com>
-Date: Tue, 12 Jun 2012 11:53:29 +0900
-Subject: [PATCH] Fix not to switch engines by non-trigger keys.
-
----
- ui/gtk3/switcher.vala |    6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/ui/gtk3/switcher.vala b/ui/gtk3/switcher.vala
-index b543a8f..ea56c07 100644
---- a/ui/gtk3/switcher.vala
-+++ b/ui/gtk3/switcher.vala
-@@ -128,6 +128,7 @@ class Switcher : Gtk.Window {
-                 state & KeybindingManager.MODIFIER_FILTER);
- 
-         update_engines(engines);
-+        m_result = 0;
-         m_selected_engine = index;
-         m_label.set_text(m_buttons[index].longname);
-         m_buttons[index].grab_focus();
-@@ -343,6 +344,11 @@ class Switcher : Gtk.Window {
-                     break;
-                 default:
-                     debug("0x%04x", pe->keyval);
-+                    if (m_loop != null) {
-+                        m_loop.quit();
-+                        m_loop = null;
-+                    }
-+                    retval = false;
-                     break;
-             }
-         } while (false);
--- 
-1.7.10.4
 

diff --git a/ibus-gjs-xx-gnome-shell-3.1.4-build-failure.patch b/ibus-gjs-xx-gnome-shell-3.1.4-build-failure.patch
deleted file mode 100644
index 87d4d77..0000000
--- a/ibus-gjs-xx-gnome-shell-3.1.4-build-failure.patch
+++ /dev/null
@@ -1,13 +0,0 @@
---- ibus-gjs/configure.ac.orig	2012-01-13 18:11:33.152447345 +0900
-+++ ibus-gjs/configure.ac	2012-02-08 14:21:59.671562482 +0900
-@@ -174,8 +174,8 @@ try {
-         $GREP -v "DEBUG:"
- }
- 
--GNOME_SHELL_VERSION=`GET_JS_VERSION 'Config.PACKAGE_VERSION'`
--GJS_VERSION=`GET_JS_VERSION 'Config.GJS_VERSION'`
-+GNOME_SHELL_VERSION='3.3.5", "3.3.4", "3.3.3", "3.2'
-+GJS_VERSION='1.31.10", "1.31.6", "1.31.11", "1.30'
- AC_SUBST(GNOME_SHELL_VERSION)
- AC_SUBST(GJS_VERSION)
- 

diff --git a/ibus-xx-f18-build.patch b/ibus-xx-f18-build.patch
index fac369a..ddc7f49 100644
--- a/ibus-xx-f18-build.patch
+++ b/ibus-xx-f18-build.patch
@@ -1,11 +1,11 @@
---- ibus-1.4.99.20120712/ui/gtk3/panel.vala.orig
-+++ ibus-1.4.99.20120712/ui/gtk3/panel.vala
-@@ -157,7 +157,7 @@ class Panel : IBus.PanelService {
-             if ((switch_modifiers & VIRTUAL_MODIFIERS) != 0) {
-             // workaround a bug in gdk vapi vala > 0.18
-             // https://bugzilla.gnome.org/show_bug.cgi?id=677559
+--- ibus-1.4.99.20120822/ui/gtk3/panel.vala.orig
++++ ibus-1.4.99.20120822/ui/gtk3/panel.vala
+@@ -125,7 +125,7 @@ class Panel : IBus.PanelService {
+         if ((switch_modifiers & VIRTUAL_MODIFIERS) != 0) {
+         // workaround a bug in gdk vapi vala > 0.18
+         // https://bugzilla.gnome.org/show_bug.cgi?id=677559
 -#if VALA_0_18
 +#if VALA_0_20
-                 Gdk.Keymap.get_default().map_virtual_modifiers(
-                         ref switch_modifiers);
+             Gdk.Keymap.get_default().map_virtual_modifiers(
+                     ref switch_modifiers);
  #else

diff --git a/ibus-xx-no-use.diff b/ibus-xx-no-use.diff
index 38f84c5..ea6e544 100644
--- a/ibus-xx-no-use.diff
+++ b/ibus-xx-no-use.diff
@@ -1,18 +1,18 @@
-From 1cd16fa05c05e64bf5ee89c92a02fe4323e1de2b Mon Sep 17 00:00:00 2001
+From 22c52cc54228a64c7e26cc33de9a47d8b1e98add Mon Sep 17 00:00:00 2001
 From: fujiwarat <takao.fujiwara1@gmail.com>
-Date: Thu, 24 May 2012 17:49:19 +0900
+Date: Wed, 15 Aug 2012 18:36:29 +0900
 Subject: [PATCH] Disabled to show non-used GUI.
 
 ---
- setup/main.py  |   60 ++++++++++++++++++++++++++++++++++++++++++++++++++------
- setup/setup.ui |   33 +++++++++++++++++--------------
- 2 files changed, 72 insertions(+), 21 deletions(-)
+ setup/main.py  |   63 ++++++++++++++++++++++++++++++++++++++++++++++++++------
+ setup/setup.ui |   38 ++++++++++++++++++----------------
+ 2 files changed, 77 insertions(+), 24 deletions(-)
 
 diff --git a/setup/main.py b/setup/main.py
-index 0e4c83d..fda20ea 100644
+index 0e4c83d..0e33d7b 100644
 --- a/setup/main.py
 +++ b/setup/main.py
-@@ -77,22 +77,30 @@ class Setup(object):
+@@ -77,22 +77,31 @@ class Setup(object):
          self.__init_ui()
  
      def __init_hotkey(self):
@@ -24,7 +24,8 @@ index 0e4c83d..fda20ea 100644
          }
 +        '''
 +        default_values = {
-+            'trigger_accel' : ('trigger', ['<Control>space']),
++            'trigger_accel' : ('next_engine', ['<Control>space']),
++            'trigger_accel_backward' : ('prev_engine', ['<Control><Shift>space']),
 +        }
  
          values = dict(self.__config.get_values("general/hotkey"))
@@ -49,7 +50,7 @@ index 0e4c83d..fda20ea 100644
  
      def __init_panel(self):
          values = dict(self.__config.get_values("panel"))
-@@ -445,6 +453,46 @@ class Setup(object):
+@@ -445,6 +454,48 @@ class Setup(object):
          entry.set_text(text)
          entry.set_tooltip_text(text)
  
@@ -61,6 +62,8 @@ index 0e4c83d..fda20ea 100644
 +        else:
 +            shortcuts = []
 +        orig_list =['<Control>space']
++        if name == 'trigger_accel_backward':
++            orig_list =['<Control><Shift>space']
 +        variant = self.__config.get_value(section, name)
 +        if variant != None:
 +            orig_list = variant.dup_strv()[0]
@@ -97,29 +100,36 @@ index 0e4c83d..fda20ea 100644
      def __item_started_column_toggled_cb(self, cell, path_str, model):
  
 diff --git a/setup/setup.ui b/setup/setup.ui
-index 2026172..c6f5f3a 100644
+index 2026172..af99cae 100644
 --- a/setup/setup.ui
 +++ b/setup/setup.ui
-@@ -106,7 +106,7 @@
-                                 <property name="row_spacing">6</property>
+@@ -122,7 +122,6 @@
                                  <child>
-                                   <object class="GtkLabel" id="label8">
--                                    <property name="visible">True</property>
-+                                    <property name="no_show_all">True</property>
+                                   <object class="GtkLabel" id="label9">
+                                     <property name="visible">True</property>
+-                                    <property name="sensitive">False</property>
                                      <property name="can_focus">False</property>
-                                     <property name="tooltip_text" translatable="yes">The shortcut keys for switching to next input method in the list</property>
+                                     <property name="tooltip_text" translatable="yes">The shortcut keys for switching to previous input method in the list</property>
                                      <property name="xalign">0</property>
-@@ -121,7 +121,7 @@
+@@ -137,7 +136,7 @@
                                  </child>
                                  <child>
-                                   <object class="GtkLabel" id="label9">
+                                   <object class="GtkHBox" id="hbox4">
 -                                    <property name="visible">True</property>
 +                                    <property name="no_show_all">True</property>
-                                     <property name="sensitive">False</property>
                                      <property name="can_focus">False</property>
-                                     <property name="tooltip_text" translatable="yes">The shortcut keys for switching to previous input method in the list</property>
-@@ -144,7 +144,7 @@
-                                       <object class="GtkEntry" id="entry_trigger">
+                                     <property name="spacing">6</property>
+                                     <child>
+@@ -172,6 +171,7 @@
+                                   <packing>
+                                     <property name="left_attach">1</property>
+                                     <property name="right_attach">2</property>
++                                    <property name="y_options">GTK_FILL</property>
+                                   </packing>
+                                 </child>
+                                 <child>
+@@ -183,7 +183,7 @@
+                                       <object class="GtkEntry" id="entry_next_engine">
                                          <property name="visible">True</property>
                                          <property name="can_focus">True</property>
 -                                        <property name="editable">False</property>
@@ -127,10 +137,10 @@ index 2026172..c6f5f3a 100644
                                        </object>
                                        <packing>
                                          <property name="expand">True</property>
-@@ -154,7 +154,9 @@
+@@ -193,7 +193,9 @@
                                      </child>
                                      <child>
-                                       <object class="GtkButton" id="button_trigger">
+                                       <object class="GtkButton" id="button_next_engine">
 -                                        <property name="label" translatable="yes">...</property>
 +                                        <!-- property name="label" translatable="yes">...</property -->
 +                                        <property name="label">gtk-apply</property>
@@ -138,30 +148,41 @@ index 2026172..c6f5f3a 100644
                                          <property name="use_action_appearance">False</property>
                                          <property name="visible">True</property>
                                          <property name="can_focus">True</property>
-@@ -172,11 +174,12 @@
-                                   <packing>
-                                     <property name="left_attach">1</property>
-                                     <property name="right_attach">2</property>
-+                                    <property name="y_options">GTK_FILL</property>
-                                   </packing>
-                                 </child>
-                                 <child>
-                                   <object class="GtkHBox" id="hbox5">
--                                    <property name="visible">True</property>
-+                                    <property name="no_show_all">True</property>
-                                     <property name="can_focus">False</property>
-                                     <property name="spacing">6</property>
+@@ -223,9 +225,8 @@
+                                     <child>
+                                       <object class="GtkEntry" id="entry_prev_engine">
+                                         <property name="visible">True</property>
+-                                        <property name="sensitive">False</property>
+                                         <property name="can_focus">True</property>
+-                                        <property name="editable">False</property>
++                                        <!-- property name="editable">False</property -->
+                                       </object>
+                                       <packing>
+                                         <property name="expand">True</property>
+@@ -235,10 +236,11 @@
+                                     </child>
                                      <child>
-@@ -217,7 +220,7 @@
+                                       <object class="GtkButton" id="button_prev_engine">
+-                                        <property name="label" translatable="yes">...</property>
++                                        <!-- property name="label" translatable="yes">...</property -->
++                                        <property name="label">gtk-apply</property>
++                                        <property name="use_stock">True</property>
+                                         <property name="use_action_appearance">False</property>
+                                         <property name="visible">True</property>
+-                                        <property name="sensitive">False</property>
+                                         <property name="can_focus">True</property>
+                                         <property name="receives_default">False</property>
+                                         <property name="use_action_appearance">False</property>
+@@ -260,7 +262,7 @@
                                  </child>
                                  <child>
-                                   <object class="GtkHBox" id="hbox6">
+                                   <object class="GtkLabel" id="label7">
 -                                    <property name="visible">True</property>
 +                                    <property name="no_show_all">True</property>
                                      <property name="can_focus">False</property>
-                                     <property name="spacing">6</property>
-                                     <child>
-@@ -273,7 +276,7 @@
+                                     <property name="tooltip_text" translatable="yes">The shortcut keys for turning input method on or off</property>
+                                     <property name="xalign">0</property>
+@@ -273,7 +275,7 @@
                                  </child>
                                  <child>
                                    <object class="GtkLabel" id="label18">
@@ -170,7 +191,7 @@ index 2026172..c6f5f3a 100644
                                      <property name="can_focus">False</property>
                                      <property name="xalign">0</property>
                                      <property name="label" translatable="yes">Enable:</property>
-@@ -287,7 +290,7 @@
+@@ -287,7 +289,7 @@
                                  </child>
                                  <child>
                                    <object class="GtkHBox" id="hbox2">
@@ -179,7 +200,7 @@ index 2026172..c6f5f3a 100644
                                      <property name="can_focus">False</property>
                                      <property name="spacing">6</property>
                                      <child>
-@@ -328,7 +331,7 @@
+@@ -328,7 +330,7 @@
                                  </child>
                                  <child>
                                    <object class="GtkLabel" id="label19">
@@ -188,7 +209,7 @@ index 2026172..c6f5f3a 100644
                                      <property name="can_focus">False</property>
                                      <property name="xalign">0</property>
                                      <property name="label" translatable="yes">Disable:</property>
-@@ -342,7 +345,7 @@
+@@ -342,7 +344,7 @@
                                  </child>
                                  <child>
                                    <object class="GtkHBox" id="hbox3">
@@ -197,7 +218,7 @@ index 2026172..c6f5f3a 100644
                                      <property name="can_focus">False</property>
                                      <property name="spacing">6</property>
                                      <child>
-@@ -452,7 +455,7 @@
+@@ -452,7 +454,7 @@
                                  </child>
                                  <child>
                                    <object class="GtkLabel" id="label10">
@@ -206,7 +227,7 @@ index 2026172..c6f5f3a 100644
                                      <property name="can_focus">False</property>
                                      <property name="tooltip_text" translatable="yes">Set the behavior of ibus how to show or hide language bar</property>
                                      <property name="xalign">0</property>
-@@ -481,7 +484,7 @@
+@@ -481,7 +483,7 @@
                                  </child>
                                  <child>
                                    <object class="GtkComboBox" id="combobox_panel_show">
@@ -215,7 +236,7 @@ index 2026172..c6f5f3a 100644
                                      <property name="can_focus">False</property>
                                      <property name="model">model_panel_show_mode</property>
                                      <child>
-@@ -521,7 +524,7 @@
+@@ -521,7 +523,7 @@
                                    <object class="GtkCheckButton" id="checkbutton_show_icon_on_systray">
                                      <property name="label" translatable="yes">Show icon on system tray</property>
                                      <property name="use_action_appearance">False</property>
@@ -224,7 +245,7 @@ index 2026172..c6f5f3a 100644
                                      <property name="can_focus">True</property>
                                      <property name="receives_default">False</property>
                                      <property name="tooltip_text" translatable="yes">Show icon on system tray</property>
-@@ -540,7 +543,7 @@
+@@ -540,7 +542,7 @@
                                    <object class="GtkCheckButton" id="checkbutton_show_im_name">
                                      <property name="label" translatable="yes">Show input method name on language bar</property>
                                      <property name="use_action_appearance">False</property>
@@ -233,7 +254,7 @@ index 2026172..c6f5f3a 100644
                                      <property name="can_focus">True</property>
                                      <property name="receives_default">False</property>
                                      <property name="tooltip_text" translatable="yes">Show input method's name on language bar when check the checkbox</property>
-@@ -1001,7 +1004,7 @@ You may use up/down buttons to change it.&lt;/i&gt;&lt;/small&gt;</property>
+@@ -1001,7 +1003,7 @@ You may use up/down buttons to change it.&lt;/i&gt;&lt;/small&gt;</property>
                      </child>
                      <child>
                        <object class="GtkFrame" id="frame5">

diff --git a/ibus-xx-setup-frequent-lang.patch b/ibus-xx-setup-frequent-lang.patch
index 1967b9d..45fd2cd 100644
--- a/ibus-xx-setup-frequent-lang.patch
+++ b/ibus-xx-setup-frequent-lang.patch
@@ -1,6 +1,6 @@
-From 3eb162c984dc420b085547b0a590f079262ef97d Mon Sep 17 00:00:00 2001
+From 7a37c380e3aa0dc0111b0a238b0d38b3521acc00 Mon Sep 17 00:00:00 2001
 From: fujiwarat <takao.fujiwara1@gmail.com>
-Date: Tue, 17 Jul 2012 17:43:10 +0900
+Date: Wed, 15 Aug 2012 18:25:08 +0900
 Subject: [PATCH] Enable ibus-setup to show the frequently used languages
  only in IME list.
 
@@ -11,10 +11,10 @@ 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 0d127d5..1ea4277 100644
+index 4086f67..445d423 100644
 --- a/data/ibus.schemas.in
 +++ b/data/ibus.schemas.in
-@@ -340,6 +340,174 @@ se,si,sk,sy,sy(ku),th,tj,tr,ua,uz,vn
+@@ -332,6 +332,174 @@ se,si,sk,sy,sy(ku),th,tj,tr,ua,uz,vn
        </locale>
      </schema>
      <schema>

diff --git a/ibus.spec b/ibus.spec
index 7f53d21..e149c59 100644
--- a/ibus.spec
+++ b/ibus.spec
@@ -14,7 +14,7 @@
 %endif
 
 %if (0%{?fedora} > 16 || 0%{?rhel} > 6)
-%define ibus_gjs_version 3.4.1.20120518
+%define ibus_gjs_version 3.4.1.20120815
 %define ibus_gjs_build_failure 1
 %else
 %define ibus_gjs_version 3.2.1.20111230
@@ -29,8 +29,8 @@
 %define gnome_icon_theme_legacy_version 2.91.6
 
 Name:       ibus
-Version:    1.4.99.20120712
-Release:    3%{?dist}
+Version:    1.4.99.20120822
+Release:    1%{?dist}
 Summary:    Intelligent Input Bus for Linux OS
 License:    LGPLv2+
 Group:      System Environment/Libraries
@@ -38,10 +38,11 @@ URL:        http://code.google.com/p/ibus/
 Source0:    http://ibus.googlecode.com/files/%{name}-%{version}.tar.gz
 Source1:    xinput-ibus
 Source2:    http://fujiwara.fedorapeople.org/ibus/gnome-shell/ibus-gjs-%{ibus_gjs_version}.tar.gz
-Patch0:     ibus-HEAD.patch
-Patch1:     ibus-541492-xkb.patch
-Patch2:     ibus-530711-preload-sys.patch
-Patch3:     ibus-xx-setup-frequent-lang.patch
+# Patch0:     ibus-HEAD.patch
+Patch1:     ibus-810211-no-switch-by-no-trigger.patch
+Patch2:     ibus-541492-xkb.patch
+Patch3:     ibus-530711-preload-sys.patch
+Patch4:     ibus-xx-setup-frequent-lang.patch
 
 # Workaround to disable preedit on gnome-shell until bug 658420 is fixed.
 # https://bugzilla.gnome.org/show_bug.cgi?id=658420
@@ -55,7 +56,6 @@ Patch95:    ibus-xx-f18-build.patch
 BuildRoot:  %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 
 
-BuildRequires:  cvs
 BuildRequires:  gettext-devel
 BuildRequires:  libtool
 BuildRequires:  python
@@ -210,16 +210,17 @@ The ibus-devel-docs package contains developer documentation for ibus
 zcat %SOURCE2 | tar xf -
 %endif
 
-%patch0 -p1
+# %patch0 -p1
 %patch92 -p1 -b .g-s-preedit
 cp client/gtk2/ibusimcontext.c client/gtk3/ibusimcontext.c ||
+%patch1 -p1 -b .noswitch
 %if %with_xkbfile
-%patch1 -p1 -b .xkb
+%patch2 -p1 -b .xkb
 rm -f bindings/vala/ibus-1.0.vapi
 rm -f data/dconf/00-upstream-settings
 %endif
-%patch2 -p1 -b .preload-sys
-%patch3 -p1 -b .setup-frequent-lang
+%patch3 -p1 -b .preload-sys
+%patch4 -p1 -b .setup-frequent-lang
 
 %if 0%{?fedora} <= 16
 %patch93 -p1 -b .compat
@@ -472,6 +473,13 @@ dconf update
 %{_datadir}/gtk-doc/html/*
 
 %changelog
+* Wed Aug 22 2012 Takao Fujiwara <tfujiwar@redhat.com> - 1.4.99.20120822-1
+- Bumped to 1.4.99.20120822
+- Bumped to ibus-gjs 3.4.1.20120815
+  Fixed Bug 845956 - ibus backward trigger key is not customized
+  Fixed Bug 844580 - ibus-dconf does not load the system gvdb
+- Separated ibus-810211-no-switch-by-no-trigger.patch from ibus-HEAD.patch
+
 * Fri Jul 27 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.4.99.20120712-3
 - Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
 

diff --git a/sources b/sources
index c88a0e6..00074d7 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
-0d884fafedf2ddfaa73a34a8eac7a1f0  ibus-1.4.99.20120712.tar.gz
+b7b7aa75b28cc28521e71ca499854695  ibus-1.4.99.20120822.tar.gz
 2d2ad58e3e41429dbd883ba7e501c9b2  ibus-gjs-3.2.1.20111230.tar.gz
-3fdef3e31c0354d927dc06df5dc02f9c  ibus-gjs-3.4.1.20120518.tar.gz
+8acf4ac4d1a7dfb9a0af9e755a8e7dba  ibus-gjs-3.4.1.20120815.tar.gz

                 reply	other threads:[~2026-05-31  2:05 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=178019314366.1.3657539675192574124.rpms-ibus-fd3eb3dac051@fedoraproject.org \
    --to=tfujiwar@redhat.com \
    --cc=git-commits@fedoraproject.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox