Fix some problem when use IBUS_SESSION_ID
authorPeng Huang <shawn.p.huang@gmail.com>
Wed, 15 Apr 2009 03:02:27 +0000 (11:02 +0800)
committerPeng Huang <shawn.p.huang@gmail.com>
Wed, 15 Apr 2009 03:02:27 +0000 (11:02 +0800)
bus/server.c
src/ibusbus.c
src/ibusshare.c
xinput-ibus

index 41bf3e1..1c796f2 100644 (file)
@@ -86,7 +86,7 @@ bus_server_listen (BusServer *server)
 
     // const gchar *address = "unix:abstract=/tmp/ibus-c"
     const gchar *address;
-    gchar *path;
+    const gchar *path;
     gboolean retval;
 
     path = ibus_get_socket_folder ();
@@ -103,7 +103,6 @@ bus_server_listen (BusServer *server)
         exit (-1);
     }
 
-    g_free(path);
     return retval;
 }
 
index d4ba041..756f8e5 100644 (file)
@@ -221,13 +221,16 @@ ibus_bus_init (IBusBus *bus)
     ibus_bus_connect (bus);
 
     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
index 4893f19..186be85 100644 (file)
@@ -103,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) {
@@ -136,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;
index bc4f254..998dce1 100644 (file)
@@ -6,3 +6,4 @@ PREFERENCE_PROGRAM=/usr/bin/ibus-setup
 SHORT_DESC="IBus"
 GTK_IM_MODULE=ibus
 # QT_IM_MODULE=ibus
+export IBUS_SESSION_ID=$RANDOM