[gnome-flashback/wip/segeiger/inputmethods] Use g_subprocess_new
- From: Sebastian Geiger <segeiger src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-flashback/wip/segeiger/inputmethods] Use g_subprocess_new
- Date: Mon, 14 Sep 2015 14:59:02 +0000 (UTC)
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]