rpms/ibus/devel ibus-HEAD.patch,1.14,1.15 ibus.spec,1.65,1.66
Huang Peng
phuang at fedoraproject.org
Fri Apr 17 06:09:25 UTC 2009
Author: phuang
Update of /cvs/pkgs/rpms/ibus/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv25221
Modified Files:
ibus-HEAD.patch ibus.spec
Log Message:
Update ibus-HEAD.patch
ibus-HEAD.patch:
Index: ibus-HEAD.patch
===================================================================
RCS file: /cvs/pkgs/rpms/ibus/devel/ibus-HEAD.patch,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- ibus-HEAD.patch 15 Apr 2009 00:04:04 -0000 1.14
+++ ibus-HEAD.patch 17 Apr 2009 06:09:24 -0000 1.15
@@ -1,12 +1,49 @@
+diff --git a/bus/ibus.desktop.in b/bus/ibus.desktop.in
+index fcf2f21..cd2ad60 100644
+--- a/bus/ibus.desktop.in
++++ b/bus/ibus.desktop.in
+@@ -7,7 +7,7 @@ Exec=ibus-daemon --xim
+ Icon=ibus
+ Terminal=false
+ Type=Application
+-X-GNOME-Autostart-Phase=Panel
++X-GNOME-Autostart-Phase=Applications
+ X-GNOME-AutoRestart=false
+ X-GNOME-Autostart-Notify=true
+ X-KDE-autostart-after=panel
+diff --git a/bus/inputcontext.c b/bus/inputcontext.c
+index 456e049..7003bd7 100644
+--- a/bus/inputcontext.c
++++ b/bus/inputcontext.c
+@@ -2091,10 +2091,10 @@ bus_input_context_filter_keyboard_shortcuts (BusInputContext *context,
+ return TRUE;
+ }
+ else if (event == next_factory) {
+- g_signal_emit (context, context_signals[REQUEST_NEXT_ENGINE], 0);
+- if (priv->engine && !priv->enabled) {
+- bus_input_context_enable (context);
++ if (priv->engine == NULL || priv->enabled == FALSE) {
++ return FALSE;
+ }
++ g_signal_emit (context, context_signals[REQUEST_NEXT_ENGINE], 0);
+ return TRUE;
+ }
+ else if (event == prev_factory) {
diff --git a/bus/server.c b/bus/server.c
-index 7245bd3..425dd86 100644
+index 7245bd3..1c796f2 100644
--- a/bus/server.c
+++ b/bus/server.c
-@@ -90,10 +90,13 @@ bus_server_listen (BusServer *server)
+@@ -86,21 +86,23 @@ bus_server_listen (BusServer *server)
+
+ // const gchar *address = "unix:abstract=/tmp/ibus-c"
+ const gchar *address;
+- gchar *path;
++ const gchar *path;
gboolean retval;
- path = g_strdup_printf("/tmp/ibus-%s", ibus_get_user_name ());
+- path = g_strdup_printf("/tmp/ibus-%s", ibus_get_user_name ());
- mkdir (path, 0775);
++ path = ibus_get_socket_folder ();
+ mkdir (path, 0700);
+ chmod (path, 0700);
+
@@ -17,6 +54,13 @@
if (!retval) {
g_printerr ("Can not listen on %s! Please try remove directory %s and run again.", address, path);
+ exit (-1);
+ }
+
+- g_free(path);
+ return retval;
+ }
+
diff --git a/client/gtk2/ibusimcontext.c b/client/gtk2/ibusimcontext.c
index 5da4dec..168e45a 100644
--- a/client/gtk2/ibusimcontext.c
@@ -110,6 +154,24 @@
<locale name="C">
<short>Trigger Hotkey</short>
<long>Trigger hotkey for enable or disable input context</long>
+diff --git a/ibus/common.py b/ibus/common.py
+index 527d3a5..571ebaa 100644
+--- a/ibus/common.py
++++ b/ibus/common.py
+@@ -67,7 +67,12 @@ if not __username:
+ if not __username:
+ __username = os.getenv ("USERNAME")
+
+-IBUS_ADDR = "unix:path=/tmp/ibus-%s/ibus-%s-%s" % (__username, __hostname, __display_number)
++__session_id = os.getenv ("IBUS_SESSION_ID")
++
++IBUS_ADDR = "unix:path=/tmp/ibus-%s%s/ibus-%s-%s" % (__username,
++ "-" + __session_id if __session_id else "",
++ __hostname,
++ __display_number)
+ # IBUS_ADDR = "tcp:host=localhost,port=7799"
+
+ IBUS_IFACE_IBUS = "org.freedesktop.IBus"
diff --git a/ibus/modifier.py b/ibus/modifier.py
index 7f6afad..56d8be9 100644
--- a/ibus/modifier.py
@@ -658,6 +720,30 @@
button.set_active(True)
else:
button.set_active(False)
+diff --git a/src/ibusbus.c b/src/ibusbus.c
+index 373e5d4..756f8e5 100644
+--- a/src/ibusbus.c
++++ b/src/ibusbus.c
+@@ -220,14 +220,17 @@ ibus_bus_init (IBusBus *bus)
+
+ ibus_bus_connect (bus);
+
+- path = g_strdup_printf ("/tmp/ibus-%s/", ibus_get_user_name ());
++ path = ibus_get_socket_folder ();
++ mkdir (path, 0700);
++ chmod (path, 0700);
++
++
+ file = g_file_new_for_path (path);
+ priv->monitor = g_file_monitor_directory (file, 0, NULL, NULL);
+
+ g_signal_connect (priv->monitor, "changed", (GCallback) _changed_cb, bus);
+
+ g_object_unref (file);
+- g_free (path);
+ }
+
+ static void
diff --git a/src/ibusinputcontext.c b/src/ibusinputcontext.c
index 95754cf..52547ff 100644
--- a/src/ibusinputcontext.c
@@ -674,6 +760,81 @@
return FALSE;
retval = ibus_proxy_call_with_reply ((IBusProxy *) context,
+diff --git a/src/ibusshare.c b/src/ibusshare.c
+index c7aa1fe..186be85 100644
+--- a/src/ibusshare.c
++++ b/src/ibusshare.c
+@@ -69,6 +69,31 @@ ibus_get_user_name (void)
+ }
+
+ const gchar *
++ibus_get_session_id (void)
++{
++ return g_getenv("IBUS_SESSION_ID");
++}
++
++const gchar *
++ibus_get_socket_folder (void)
++{
++ static gchar *folder = NULL;
++
++ if (folder == NULL) {
++ const gchar *session = ibus_get_session_id ();
++ if (session && session[0] != '\0') {
++ folder = g_strdup_printf ("/tmp/ibus-%s-%s",
++ ibus_get_user_name (), session);
++ }
++ else {
++ folder = g_strdup_printf ("/tmp/ibus-%s",
++ ibus_get_user_name ());
++ }
++ }
++ return folder;
++}
++
++const gchar *
+ ibus_get_socket_path (void)
+ {
+ static gchar *path = NULL;
+@@ -78,7 +103,7 @@ ibus_get_socket_path (void)
+ gchar *display;
+ gchar *displaynumber = "0";
+ gchar *screennumber = "0";
+- const gchar *username = NULL;
++ const gchar *folder= NULL;
+ gchar *p;
+
+ if (_display == NULL) {
+@@ -111,14 +136,14 @@ ibus_get_socket_path (void)
+ }
+ }
+
+- username = ibus_get_user_name ();
++ folder = ibus_get_socket_folder ();
+
+ if (hostname[0] == '\0')
+ hostname = "unix";
+
+ path = g_strdup_printf (
+- "/tmp/ibus-%s/ibus-%s-%s",
+- username, hostname, displaynumber);
++ "%s/ibus-%s-%s",
++ folder, hostname, displaynumber);
+ g_free (display);
+ }
+ return path;
+diff --git a/src/ibusshare.h b/src/ibusshare.h
+index f3b34c4..4c0c645 100644
+--- a/src/ibusshare.h
++++ b/src/ibusshare.h
+@@ -49,6 +49,7 @@ void ibus_set_display (const gchar *display);
+ const gchar *ibus_get_address (void);
+ const gchar *ibus_get_user_name (void);
+ const gchar *ibus_get_socket_path (void);
++const gchar *ibus_get_socket_folder (void);
+
+ const gchar *ibus_keyval_name (guint keyval);
+ guint ibus_keyval_from_name (const gchar *keyval_name);
diff --git a/src/ibustypes.h b/src/ibustypes.h
index d2f15ba..2f7c0bf 100644
--- a/src/ibustypes.h
Index: ibus.spec
===================================================================
RCS file: /cvs/pkgs/rpms/ibus/devel/ibus.spec,v
retrieving revision 1.65
retrieving revision 1.66
diff -u -r1.65 -r1.66
--- ibus.spec 15 Apr 2009 00:04:05 -0000 1.65
+++ ibus.spec 17 Apr 2009 06:09:24 -0000 1.66
@@ -8,7 +8,7 @@
Name: ibus
Version: 1.1.0.20090413
-Release: 3%{?dist}
+Release: 4%{?dist}
Summary: Intelligent Input Bus for Linux OS
License: LGPLv2+
Group: System Environment/Libraries
@@ -217,6 +217,10 @@
%{_libdir}/pkgconfig/*
%changelog
+* Fri Apr 17 2009 Huang Peng <shawn.p.huang at gmail.com> - 1.1.0.20090413-4
+- Update ibus-HEAD.patch.
+- Next Engine hotkey will do nothing if the IM is not active.
+
* Wed Apr 15 2009 Huang Peng <shawn.p.huang at gmail.com> - 1.1.0.20090413-3
- Update ibus-HEAD.patch.
- Fix bug 495431 - ibus Release modifier doesn't work with Alt
More information about the scm-commits
mailing list