f0777a3
--- ibus-1.3.99.20101028/client/gtk3/Makefile.am.orig	2010-10-29 17:23:56.706717818 +0900
f0777a3
+++ ibus-1.3.99.20101028/client/gtk3/Makefile.am	2010-10-29 17:24:18.236715894 +0900
f0777a3
@@ -20,7 +20,7 @@
f0777a3
 # Free Software Foundation, Inc., 59 Temple Place, Suite 330,
f0777a3
 # Boston, MA  02111-1307  USA
f0777a3
 
f0777a3
-libibus = $(top_builddir)/src/libibus-2.0.la
f0777a3
+libibus = $(top_builddir)/src/libibus-@IBUS_API_VERSION@.la
f0777a3
 
f0777a3
 INCLUDES = \
f0777a3
 	-I$(top_srcdir)/src \
f0777a3
--- ibus-1.3.99.20101028/src/ibusenginedesc.c.orig	2010-10-29 19:27:09.522715859 +0900
f0777a3
+++ ibus-1.3.99.20101028/src/ibusenginedesc.c	2010-10-29 19:28:11.539716134 +0900
f0777a3
@@ -379,8 +379,8 @@ ibus_engine_desc_serialize (IBusEngineDe
f0777a3
     g_variant_builder_add (builder, "s", NOTNULL (desc->priv->author));
f0777a3
     g_variant_builder_add (builder, "s", NOTNULL (desc->priv->icon));
f0777a3
     g_variant_builder_add (builder, "s", NOTNULL (desc->priv->layout));
f0777a3
-    g_variant_builder_add (builder, "s", NOTNULL (desc->priv->hotkeys));
f0777a3
     g_variant_builder_add (builder, "u", desc->priv->rank);
f0777a3
+    g_variant_builder_add (builder, "s", NOTNULL (desc->priv->hotkeys));
f0777a3
 #undef NOTNULL
f0777a3
     return TRUE;
f0777a3
 }
f0777a3
@@ -402,8 +402,8 @@ ibus_engine_desc_deserialize (IBusEngine
f0777a3
     g_variant_get_child (variant, retval++, "s", &desc->priv->author);
f0777a3
     g_variant_get_child (variant, retval++, "s", &desc->priv->icon);
f0777a3
     g_variant_get_child (variant, retval++, "s", &desc->priv->layout);
f0777a3
-    g_variant_get_child (variant, retval++, "s", &desc->priv->hotkeys);
f0777a3
     g_variant_get_child (variant, retval++, "u", &desc->priv->rank);
f0777a3
+    g_variant_get_child (variant, retval++, "s", &desc->priv->hotkeys);
f0777a3
 
f0777a3
     return retval;
f0777a3
 }
f0777a3
--- ibus-1.3.99.20101028/ibus/common.py.orig	2010-11-01 14:06:59.222958549 +0900
f0777a3
+++ ibus-1.3.99.20101028/ibus/common.py	2010-11-01 14:07:09.253716200 +0900
f0777a3
@@ -120,7 +120,7 @@ IBUS_SERVICE_IBUS   = "org.freedesktop.I
f0777a3
 IBUS_IFACE_PANEL            = "org.freedesktop.IBus.Panel"
f0777a3
 IBUS_IFACE_CONFIG           = "org.freedesktop.IBus.Config"
f0777a3
 IBUS_IFACE_ENGINE           = "org.freedesktop.IBus.Engine"
f0777a3
-IBUS_IFACE_ENGINE_FACTORY   = "org.freedesktop.IBus.EngineFactory"
f0777a3
+IBUS_IFACE_ENGINE_FACTORY   = "org.freedesktop.IBus.Factory"
f0777a3
 IBUS_IFACE_INPUT_CONTEXT    = "org.freedesktop.IBus.InputContext"
f0777a3
 IBUS_IFACE_NOTIFICATIONS    = "org.freedesktop.IBus.Notifications"
f0777a3
 
f0777a3
--- ibus-1.3.99.20101028/ibus/config.py.orig	2010-11-01 17:47:11.241780699 +0900
f0777a3
+++ ibus-1.3.99.20101028/ibus/config.py	2010-11-01 17:47:24.946715350 +0900
f0777a3
@@ -46,7 +46,7 @@ class ConfigBase(object.Object):
f0777a3
     def set_value(self, section, name, value):
f0777a3
         pass
f0777a3
 
f0777a3
-    def unset(self, section, name):
f0777a3
+    def unset_value(self, section, name):
f0777a3
         pass
f0777a3
 
f0777a3
     def value_changed(self, section, name, value):
f0777a3
@@ -65,8 +65,8 @@ class ConfigProxy(interface.IConfig):
f0777a3
     def SetValue(self, section, name, value):
f0777a3
         return self.__config.set_value(section, name, value)
f0777a3
 
f0777a3
-    def Unset(self, section, name):
f0777a3
-        return self.__config.unset(section, name)
f0777a3
+    def UnsetValue(self, section, name):
f0777a3
+        return self.__config.unset_value(section, name)
f0777a3
 
f0777a3
     def Destroy(self):
f0777a3
         self.__config.destroy()
f0777a3
@@ -148,8 +148,8 @@ class Config(object.Object):
f0777a3
     def set_list(self, section, name, value, signature):
f0777a3
         return self.set_value(section, name, dbus.Array(value, signature=signature))
f0777a3
 
f0777a3
-    def unset(self, section, name):
f0777a3
+    def unset_value(self, section, name):
f0777a3
         try:
f0777a3
-            return self.__config.Unset(section, name)
f0777a3
+            return self.__config.UnsetValue(section, name)
f0777a3
         except:
f0777a3
             return
f0777a3
--- ibus-1.3.99.20101028/ibus/interface/iconfig.py.orig	2010-11-01 18:08:49.704715614 +0900
f0777a3
+++ ibus-1.3.99.20101028/ibus/interface/iconfig.py	2010-11-01 18:09:10.036715669 +0900
f0777a3
@@ -49,6 +49,9 @@ class IConfig(dbus.service.Object):
f0777a3
     @method(in_signature="ssv")
f0777a3
     def SetValue(self, section, name, value): pass
f0777a3
 
f0777a3
+    @method(in_signature="ss")
f0777a3
+    def UnsetValue(self, section, name): pass
f0777a3
+
f0777a3
     @method()
f0777a3
     def Destroy(self): pass
f0777a3
 
f0777a3
diff --git a/src/ibuscomponent.c b/src/ibuscomponent.c
f0777a3
index df05727..d016698 100644
f0777a3
--- a/src/ibuscomponent.c
f0777a3
+++ b/src/ibuscomponent.c
f0777a3
@@ -713,20 +713,20 @@ ibus_component_new (const gchar *name,
f0777a3
                     const gchar *exec,
f0777a3
                     const gchar *textdomain)
f0777a3
 {
f0777a3
-    return ibus_component_new2 ("name", name,
f0777a3
-                                "description", description,
f0777a3
-                                "version", version,
f0777a3
-                                "license", license,
f0777a3
-                                "author", author,
f0777a3
-                                "homepage", homepage,
f0777a3
-                                "exec", exec,
f0777a3
-                                "textdomain", textdomain,
f0777a3
-                                NULL);
f0777a3
+    return ibus_component_new_varargs ("name", name,
f0777a3
+                                       "description", description,
f0777a3
+                                       "version", version,
f0777a3
+                                       "license", license,
f0777a3
+                                       "author", author,
f0777a3
+                                       "homepage", homepage,
f0777a3
+                                       "exec", exec,
f0777a3
+                                       "textdomain", textdomain,
f0777a3
+                                       NULL);
f0777a3
 }
f0777a3
 
f0777a3
 
f0777a3
 IBusComponent *
f0777a3
-ibus_component_new2 (const gchar *first_property_name, ...)
f0777a3
+ibus_component_new_varargs (const gchar *first_property_name, ...)
f0777a3
 {
f0777a3
     va_list var_args;
f0777a3
     IBusComponent *component;
f0777a3
diff --git a/src/ibuscomponent.h b/src/ibuscomponent.h
f0777a3
index 2383de9..c8da80e 100644
f0777a3
--- a/src/ibuscomponent.h
f0777a3
+++ b/src/ibuscomponent.h
f0777a3
@@ -141,18 +141,18 @@ IBusComponent   *ibus_component_new             (const gchar    *name,
f0777a3
                                                  const gchar    *textdomain);
f0777a3
 
f0777a3
 /**
f0777a3
- * ibus_component_new2:
f0777a3
+ * ibus_component_new_varargs:
f0777a3
  * @first_property_name: Name of the first property.
f0777a3
  * @Varargs: the NULL-terminated arguments of the properties and values.
f0777a3
  *
f0777a3
  * New an IBusComponent.
f0777a3
- * ibus_component_new2() supports the va_list format.
f0777a3
+ * ibus_component_new_varargs() supports the va_list format.
f0777a3
  * name property is required. e.g.
f0777a3
- * IBusComponent *component = ibus_component_new2 ("name", "ibus-foo",
f0777a3
- *                                                 "exec", "/usr/libexec/ibus-engine-foo --ibus",
f0777a3
- *                                                 NULL)
f0777a3
+ * IBusComponent *component = ibus_component_new_varargs ("name", "ibus-foo",
f0777a3
+ *                                                     "exec", "/usr/libexec/ibus-engine-foo --ibus",
f0777a3
+ *                                                     NULL)
f0777a3
  */
f0777a3
-IBusComponent   *ibus_component_new2            (const gchar    *first_property_name,
f0777a3
+IBusComponent   *ibus_component_new_varargs     (const gchar    *first_property_name,
f0777a3
                                                  ...);
f0777a3
 
f0777a3
 /**
f0777a3
diff --git a/src/ibusenginedesc.c b/src/ibusenginedesc.c
f0777a3
index 8bcef34..1e6954c 100644
f0777a3
--- a/src/ibusenginedesc.c
f0777a3
+++ b/src/ibusenginedesc.c
f0777a3
@@ -538,19 +538,19 @@ ibus_engine_desc_new (const gchar *name,
f0777a3
                       const gchar *icon,
f0777a3
                       const gchar *layout)
f0777a3
 {
f0777a3
-    return ibus_engine_desc_new2 ("name", name,
f0777a3
-                                  "longname", longname,
f0777a3
-                                  "description", description,
f0777a3
-                                  "language", language,
f0777a3
-                                  "license", license,
f0777a3
-                                  "author", author,
f0777a3
-                                  "icon", icon,
f0777a3
-                                  "layout", layout,
f0777a3
-                                  NULL);
f0777a3
+    return ibus_engine_desc_new_varargs ("name", name,
f0777a3
+                                         "longname", longname,
f0777a3
+                                         "description", description,
f0777a3
+                                         "language", language,
f0777a3
+                                         "license", license,
f0777a3
+                                         "author", author,
f0777a3
+                                         "icon", icon,
f0777a3
+                                         "layout", layout,
f0777a3
+                                         NULL);
f0777a3
 }
f0777a3
 
f0777a3
 IBusEngineDesc *
f0777a3
-ibus_engine_desc_new2 (const gchar *first_property_name, ...)
f0777a3
+ibus_engine_desc_new_varargs (const gchar *first_property_name, ...)
f0777a3
 {
f0777a3
     va_list var_args;
f0777a3
     IBusEngineDesc *desc;
f0777a3
diff --git a/src/ibusenginedesc.h b/src/ibusenginedesc.h
f0777a3
index d88b35a..c9dd1c2 100644
f0777a3
--- a/src/ibusenginedesc.h
f0777a3
+++ b/src/ibusenginedesc.h
f0777a3
@@ -132,16 +132,16 @@ IBusEngineDesc  *ibus_engine_desc_new           (const gchar    *name,
f0777a3
                                                  const gchar    *layout);
f0777a3
 
f0777a3
 /**
f0777a3
- * ibus_engine_desc_new2:
f0777a3
+ * ibus_engine_desc_new_varargs:
f0777a3
  * @first_property_name: Name of the first property.
f0777a3
  * @Varargs: the NULL-terminated arguments of the properties and values.
f0777a3
  *
f0777a3
  * New a IBusEngineDesc.
f0777a3
- * ibus_engine_desc_new2() supports the va_list format.
f0777a3
+ * ibus_engine_desc_new_varargs() supports the va_list format.
f0777a3
  * name property is required. e.g.
f0777a3
- * ibus_engine_desc_new2("name", "ibus-foo", "language", "us", NULL)
f0777a3
+ * ibus_engine_desc_new_varargs("name", "ibus-foo", "language", "us", NULL)
f0777a3
  */
f0777a3
-IBusEngineDesc  *ibus_engine_desc_new2          (const gchar *first_property_name,
f0777a3
+IBusEngineDesc  *ibus_engine_desc_new_varargs   (const gchar *first_property_name,
f0777a3
                                                  ...);
f0777a3
 
f0777a3
 
f0777a3
diff --git a/bus/factoryproxy.c b/bus/factoryproxy.c
f0777a3
index f4e739d..130b881 100644
f0777a3
--- a/bus/factoryproxy.c
f0777a3
+++ b/bus/factoryproxy.c
f0777a3
@@ -176,7 +176,8 @@ bus_factory_proxy_create_engine (BusFactoryProxy *factory,
f0777a3
     g_variant_get (retval, "(&o)", &object_path);
f0777a3
     GDBusConnection *connection = g_dbus_proxy_get_connection ((GDBusProxy *) factory);
f0777a3
     BusEngineProxy *engine = bus_engine_proxy_new (object_path,
f0777a3
-                    desc, bus_connection_lookup (connection));
f0777a3
+                                                   desc,
f0777a3
+                                                   bus_connection_lookup (connection));
f0777a3
     g_variant_unref (retval);
f0777a3
     return engine;
f0777a3
 }
f0777a3
diff --git a/src/ibusproperty.c b/src/ibusproperty.c
f0777a3
index 52a8210..bb9cc21 100644
f0777a3
--- a/src/ibusproperty.c
f0777a3
+++ b/src/ibusproperty.c
f0777a3
@@ -243,7 +243,7 @@ ibus_property_set_icon (IBusProperty *prop,
f0777a3
     g_assert (IBUS_IS_PROPERTY (prop));
f0777a3
 
f0777a3
     g_free (prop->icon);
f0777a3
-    prop->icon = g_strdup (icon);
f0777a3
+    prop->icon = g_strdup (icon != NULL ? icon : "");
f0777a3
 }
f0777a3
 
f0777a3
 void
f0777a3
diff --git a/ui/gtk/main.py b/ui/gtk/main.py
f0777a3
index 18bb12e..f4c901d 100644
f0777a3
--- a/ui/gtk/main.py
f0777a3
+++ b/ui/gtk/main.py
f0777a3
@@ -56,7 +56,6 @@ class UIApplication:
f0777a3
                             "Please restart ibus input platform."), \
f0777a3
                             "ibus")
f0777a3
         self.__notify.set_timeout(10 * 1000)
f0777a3
-        self.__notify.attach_to_status_icon (self.__panel.get_status_icon())
f0777a3
         self.__notify.add_action("restart", _("Restart Now"), self.__restart_cb, None)
f0777a3
         self.__notify.add_action("ignore", _("Later"), lambda *args: None, None)
f0777a3
 
f0777a3
diff --git a/client/x11/main.c b/client/x11/main.c
f0777a3
index c91a6d7..f3c835b 100644
f0777a3
--- a/client/x11/main.c
f0777a3
+++ b/client/x11/main.c
f0777a3
@@ -245,7 +245,9 @@ _xim_preedit_callback_draw (XIMS xims, X11IC *x11ic, const gchar *preedit_string
f0777a3
     text.feedback = feedback;
f0777a3
 
f0777a3
     if (len > 0) {
f0777a3
-        Xutf8TextListToTextProperty (GDK_DISPLAY (), (char **)&preedit_string, 1, XCompoundTextStyle, &tp);
f0777a3
+        Xutf8TextListToTextProperty (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()),
f0777a3
+                                     (char **)&preedit_string,
f0777a3
+                                     1, XCompoundTextStyle, &tp);
f0777a3
         text.encoding_is_wchar = 0;
f0777a3
         text.length = strlen ((char*)tp.value);
f0777a3
         text.string.multi_byte = (char*)tp.value;
f0777a3
@@ -583,9 +585,9 @@ _xim_set_cursor_location (X11IC *x11ic)
f0777a3
         XWindowAttributes xwa;
f0777a3
         Window child;
f0777a3
 
f0777a3
-        XGetWindowAttributes (GDK_DISPLAY(), w, &xwa;;
f0777a3
+        XGetWindowAttributes (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), w, &xwa;;
f0777a3
         if (preedit_area.x <= 0 && preedit_area.y <= 0) {
f0777a3
-             XTranslateCoordinates (GDK_DISPLAY(), w,
f0777a3
+             XTranslateCoordinates (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), w,
f0777a3
                 xwa.root,
f0777a3
                 0,
f0777a3
                 xwa.height,
f0777a3
@@ -594,7 +596,7 @@ _xim_set_cursor_location (X11IC *x11ic)
f0777a3
                 &child);
f0777a3
         }
f0777a3
         else {
f0777a3
-            XTranslateCoordinates (GDK_DISPLAY(), w,
f0777a3
+            XTranslateCoordinates (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), w,
f0777a3
                 xwa.root,
f0777a3
                 preedit_area.x,
f0777a3
                 preedit_area.y,
f0777a3
@@ -739,11 +741,11 @@ _xim_forward_key_event (X11IC   *x11ic,
f0777a3
     xkp.xkey.serial = 0L;
f0777a3
     xkp.xkey.send_event = False;
f0777a3
     xkp.xkey.same_screen = True;
f0777a3
-    xkp.xkey.display = GDK_DISPLAY();
f0777a3
+    xkp.xkey.display = GDK_DISPLAY_XDISPLAY (gdk_display_get_default ());
f0777a3
     xkp.xkey.window =
f0777a3
         x11ic->focus_window ? x11ic->focus_window : x11ic->client_window;
f0777a3
     xkp.xkey.subwindow = None;
f0777a3
-    xkp.xkey.root = DefaultRootWindow (GDK_DISPLAY());
f0777a3
+    xkp.xkey.root = DefaultRootWindow (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()));
f0777a3
 
f0777a3
     xkp.xkey.time = 0;
f0777a3
     xkp.xkey.state = state;
f0777a3
@@ -781,7 +783,7 @@ _context_commit_text_cb (IBusInputContext *context,
f0777a3
     XTextProperty tp;
f0777a3
     IMCommitStruct cms = {0};
f0777a3
 
f0777a3
-    Xutf8TextListToTextProperty (GDK_DISPLAY (),
f0777a3
+    Xutf8TextListToTextProperty (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()),
f0777a3
         (gchar **)&(text->text), 1, XCompoundTextStyle, &tp);
f0777a3
 
f0777a3
     cms.major_code = XIM_COMMIT;
f0777a3
@@ -961,7 +963,7 @@ _xim_init_IMdkit ()
f0777a3
         sizeof (ims_encodings)/sizeof (XIMEncoding) - 1;
f0777a3
     encodings.supported_encodings = ims_encodings;
f0777a3
 
f0777a3
-    _xims = IMOpenIM(GDK_DISPLAY(),
f0777a3
+    _xims = IMOpenIM(GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()),
f0777a3
         IMModifiers, "Xi18n",
f0777a3
         IMServerWindow, GDK_WINDOW_XWINDOW(win),
f0777a3
         IMServerName, _server_name != NULL ? _server_name : "ibus",
20eb2be
diff --git a/client/gtk3/ibusimcontext.c b/client/gtk3/ibusimcontext.c
20eb2be
index 0bb71b5..c06faaa 100644
20eb2be
--- a/client/gtk3/ibusimcontext.c
20eb2be
+++ b/client/gtk3/ibusimcontext.c
20eb2be
@@ -669,10 +669,15 @@ _set_cursor_location_internal (GtkIMContext *context)
20eb2be
 
20eb2be
     area = ibusimcontext->cursor_area;
20eb2be
     if (area.x == -1 && area.y == -1 && area.width == 0 && area.height == 0) {
20eb2be
+#if GTK_CHECK_VERSION (2, 91, 0)
20eb2be
+        area.x = 0;
20eb2be
+        area.y += gdk_window_get_height (ibusimcontext->client_window);
20eb2be
+#else
20eb2be
         gint w, h;
20eb2be
         gdk_drawable_get_size (ibusimcontext->client_window, &w, &h);
20eb2be
         area.y += h;
20eb2be
         area.x = 0;
20eb2be
+#endif
20eb2be
     }
20eb2be
 
20eb2be
     gdk_window_get_origin (ibusimcontext->client_window, &x, &y);
8a795bf
diff --git a/configure.ac b/configure.ac
8a795bf
index 2c330fa..a9cd908 100644
8a795bf
--- a/configure.ac
8a795bf
+++ b/configure.ac
8a795bf
@@ -21,10 +21,6 @@
8a795bf
 # Boston, MA  02111-1307  USA
8a795bf
 AC_PREFEQ([2.62])
8a795bf
 
8a795bf
-AC_INIT([ibus], [ibus_version],
8a795bf
-        [http://code.google.com/p/ibus/issues/entry],
8a795bf
-        [ibus])
8a795bf
-
8a795bf
 AC_CONFIG_HEADERS([config.h])
8a795bf
 AC_CONFIG_MACRO_DIR([m4])
8a795bf
 
8a795bf
@@ -46,6 +42,10 @@ m4_define([ibus_api_version], [1.0])
8a795bf
 m4_define([glib_required_version], [2.26.0])
8a795bf
 
8a795bf
 
8a795bf
+AC_INIT([ibus], [ibus_version],
8a795bf
+        [http://code.google.com/p/ibus/issues/entry],
8a795bf
+        [ibus])
8a795bf
+
8a795bf
 # Init automake
8a795bf
 AM_INIT_AUTOMAKE([1.10])
8a795bf
 AM_MAINTAINER_MODE([enable])
8a795bf
diff --git a/setup/main.py b/setup/main.py
8a795bf
index 978b467..98fa1d1 100644
8a795bf
--- a/setup/main.py
8a795bf
+++ b/setup/main.py
8a795bf
@@ -69,7 +69,7 @@ class Setup(object):
8a795bf
         super(Setup, self).__init__()
8a795bf
         gtk_builder_file = path.join(path.dirname(__file__), "./setup.ui")
8a795bf
         self.__builder = gtk.Builder()
8a795bf
-        self.__builder.set_translation_domain("ibus")
8a795bf
+        self.__builder.set_translation_domain("ibus10")
8a795bf
         self.__builder.add_from_file(gtk_builder_file);
8a795bf
         self.__bus = None
8a795bf
         self.__init_bus()