This is an automated email from the git hooks/post-receive script. f 2 4 0 4 p u s h e d a c o m m i t t o b r a n c h m a s t e r in repository apps/xfce4-terminal.
commit 48106cb37a9d904428e4082166cd87a55aee04e5 Author: Olivier Duchateau <[email protected]> Date: Fri Mar 9 19:09:32 2018 -0500 Use async spawn method for VTE >= 0.48 Bug #14249 Signed-off-by: Igor <[email protected]> --- terminal/terminal-screen.c | 49 +++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 44 insertions(+), 5 deletions(-) diff --git a/terminal/terminal-screen.c b/terminal/terminal-screen.c index bff96f2..c7be97e 100644 --- a/terminal/terminal-screen.c +++ b/terminal/terminal-screen.c @@ -61,6 +61,10 @@ /* offset of saturation random value */ #define SATURATION_WINDOW 0.20 +/* taken from gnome-terminal (terminal-screen.c) */ +#define SPAWN_TIMEOUT (30 * 1000 /* 30 s*/) + + enum { @@ -1673,6 +1677,29 @@ terminal_screen_set_custom_command (TerminalScreen *screen, +#if VTE_CHECK_VERSION (0, 48, 0) +static void +terminal_screen_spawn_async_cb (VteTerminal *terminal, + GPid pid, + GError *error, + gpointer user_data) +{ + TerminalScreen *screen = TERMINAL_SCREEN (user_data); + + terminal_return_if_fail (TERMINAL_IS_SCREEN (screen)); + terminal_return_if_fail (VTE_IS_TERMINAL (screen->terminal)); + + if (error) + { + xfce_dialog_show_error (GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (screen))), + error, _("Failed to execute child")); + g_error_free (error); + } +} +#endif + + + /** * terminal_screen_new: * @attr : Terminal attributes. @@ -1755,17 +1782,29 @@ terminal_screen_launch_child (TerminalScreen *screen) spawn_flags |= G_SPAWN_FILE_AND_ARGV_ZERO; } +#if VTE_CHECK_VERSION (0, 48, 0) + vte_terminal_spawn_async (VTE_TERMINAL (screen->terminal), + pty_flags, + screen->working_directory, argv2, env, + spawn_flags, + NULL, NULL, + NULL, SPAWN_TIMEOUT, + NULL, + terminal_screen_spawn_async_cb, + screen); +#else if (!vte_terminal_spawn_sync (VTE_TERMINAL (screen->terminal), - pty_flags, - screen->working_directory, argv2, env, - spawn_flags, - NULL, NULL, - &screen->pid, NULL, &error)) + pty_flags, + screen->working_directory, argv2, env, + spawn_flags, + NULL, NULL, + &screen->pid, NULL, &error)) { xfce_dialog_show_error (GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (screen))), error, _("Failed to execute child")); g_error_free (error); } +#endif #ifdef HAVE_LIBUTEMPTER g_object_get (G_OBJECT (screen->preferences), "command-update-records", &update_records, NULL); -- To stop receiving notification emails like this one, please contact the administrator of this repository. _______________________________________________ Xfce4-commits mailing list [email protected] https://mail.xfce.org/mailman/listinfo/xfce4-commits
