diff options
Diffstat (limited to 'src/beaver-target.c')
-rw-r--r-- | src/beaver-target.c | 35 |
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 |