[gnome-flashback/wip/segeiger/inputmethods] Use g_subprocess_new



commit a985600389b6d83e7216c32641bfbca0f7f15a80
Author: Sebastian Geiger <sbastig gmx net>
Date:   Mon Sep 14 16:58:26 2015 +0200

    Use g_subprocess_new

 gnome-flashback/libinput-sources/gf-ibus-manager.c |   14 ++++++++------
 1 files changed, 8 insertions(+), 6 deletions(-)
---
diff --git a/gnome-flashback/libinput-sources/gf-ibus-manager.c 
b/gnome-flashback/libinput-sources/gf-ibus-manager.c
index c5d98b1..819a85c 100644
--- a/gnome-flashback/libinput-sources/gf-ibus-manager.c
+++ b/gnome-flashback/libinput-sources/gf-ibus-manager.c
@@ -32,6 +32,8 @@ struct _GfIBusManager
     IBusBus *ibus;
     GHashTable *engines; // maps an engine name to an engine (char* to IBusEngine*)
     IBusPanelService *panelService;
+    GSubprocess *ibusDaemonSubprocess;
+
     gboolean ready;
     gulong registerPropertiesSignalId;
     guint preloadEnginesTimerId;
@@ -40,11 +42,12 @@ struct _GfIBusManager
 
     /* stores the ids to be used by the timeout callback in preload_engines */
     char **engineIds;
+
 };
 
 G_DEFINE_TYPE (GfIBusManager, gf_ibus_manager, G_TYPE_OBJECT)
 
-static void spawn (void);
+static void spawn (GfIBusManager *manager);
 static void initEngines (IBusBus *ibus, GAsyncResult *result,
                          GfIBusManager *manager);
 static void initPanelService (IBusBus *ibus, GAsyncResult *result,
@@ -99,7 +102,7 @@ onDisconnected (IBusBus *ibus, GfIBusManager *manager)
 
     g_signal_emit (manager, gf_ibus_manager_signals[GF_IBUS_MANAGER_READY], 0, FALSE);
 
-    spawn ();
+    spawn (manager);
 }
 
 static void
@@ -233,12 +236,11 @@ setContentType (IBusPanelService *panelService, guint purpose, guint hints, GfIB
 }
 
 static void
-spawn (void)
+spawn (GfIBusManager *manager)
 {
     // start a new subprocess for ibus-daemon
-    const char const *argv[] = {"ibus-daemon", "--xim", "--replace", "--panel", "disabled"};
     GError *error = NULL;
-    g_subprocess_newv (argv, G_SUBPROCESS_FLAGS_NONE, &error);
+    manager->ibusDaemonSubprocess = g_subprocess_new (G_SUBPROCESS_FLAGS_NONE, &error, "ibus-daemon", 
"--xim", "--panel", "disabled", NULL);
     if (error) {
         g_log ("gnome-flashback", G_LOG_LEVEL_ERROR, _("Failed to launch ibus-daemon: %s"), error->message);
         g_free (error);
@@ -313,7 +315,7 @@ gf_ibus_manager_init (GfIBusManager *manager)
     ibus_bus_set_watch_ibus_signal (manager->ibus, TRUE);
     g_signal_connect (manager->ibus, "global-engine-changed", G_CALLBACK (onEngineChanged), manager);
 
-    spawn ();
+    spawn (manager);
 }
 
 IBusEngineDesc *


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]