aboutsummaryrefslogtreecommitdiffstats
path: root/src/beaver-target.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/beaver-target.c')
-rw-r--r--src/beaver-target.c35
1 files changed, 31 insertions, 4 deletions
diff --git a/src/beaver-target.c b/src/beaver-target.c
index 696266d..ac4a3ec 100644
--- a/src/beaver-target.c
+++ b/src/beaver-target.c
@@ -61,8 +61,10 @@ static void launcher_child_exited_cb (AnjutaLauncher *launcher, gint child_pid,
gint status, gulong time, gpointer userdata);
static void launcher_data_cb (AnjutaLauncher *launcher,
AnjutaLauncherOutputType type, const gchar *chars, gpointer userdata);
-gboolean _beaver_target_run_remote_v (BeaverTarget *target, gchar **in_args,
+static gboolean _beaver_target_run_remote_v (BeaverTarget *target, gchar **in_args,
GError **error);
+static gboolean _beaver_target_run_remote (BeaverTarget *target, gchar *cmd,
+ GError **out_err);
static void
beaver_target_get_property (GObject *object, guint property_id,
@@ -129,6 +131,7 @@ beaver_target_class_init (BeaverTargetClass *klass)
object_class->finalize = beaver_target_finalize;
klass->run_remote_v = _beaver_target_run_remote_v;
+ klass->run_remote = _beaver_target_run_remote;
signals[STATE_CHANGED] = g_signal_new ("state-changed",
G_OBJECT_CLASS_TYPE (object_class),
@@ -195,8 +198,33 @@ beaver_target_run_remote_v (BeaverTarget *target, gchar **in_args,
return BEAVER_TARGET_GET_CLASS (target)->run_remote_v (target, in_args, error);
}
-/* default implementations */
gboolean
+beaver_target_run_remote (BeaverTarget *target, gchar *cmd, GError **error)
+{
+ return BEAVER_TARGET_GET_CLASS (target)->run_remote (target, cmd, error);
+}
+
+/* default implementations */
+static gboolean
+_beaver_target_run_remote (BeaverTarget *target, gchar *cmd, GError **out_err)
+{
+ GError *error = NULL;
+ gchar *args[2] = { 0 };
+ gchar *cmdline = NULL;
+ gboolean res = FALSE;
+
+ cmdline = g_strdup_printf ("DISPLAY=:0 dbus-launch %s", cmd);
+ args[0] = cmdline;
+ args[1] = NULL;
+
+ res = beaver_target_run_remote_v (target, args, &error);
+
+ g_free (cmdline);
+
+ return res;
+}
+
+static gboolean
_beaver_target_run_remote_v (BeaverTarget *target, gchar **in_args,
GError **out_err)
{
@@ -268,8 +296,7 @@ launcher_child_exited_cb (AnjutaLauncher *launcher, gint child_pid,
{
BeaverTarget *target = BEAVER_TARGET (userdata);
- if (beaver_target_get_state (target) == TARGET_STATE_READY)
- beaver_target_set_state (target, TARGET_STATE_READY);
+ beaver_target_set_state (target, TARGET_STATE_READY);
}
static void