screen: Update for vte API
Fixes partially #149 https://git.gnome.org/browse/gnome-terminal/commit/?id=b9cf035874e06951ff8425760cf978ca412b2032
parent
39588e6dcb
commit
82b97e200a
|
@ -65,7 +65,6 @@ struct _TerminalScreenPrivate
|
||||||
char **initial_env;
|
char **initial_env;
|
||||||
char **override_command;
|
char **override_command;
|
||||||
int child_pid;
|
int child_pid;
|
||||||
int pty_fd;
|
|
||||||
double font_scale;
|
double font_scale;
|
||||||
gboolean user_title; /* title was manually set */
|
gboolean user_title; /* title was manually set */
|
||||||
GSList *match_tags;
|
GSList *match_tags;
|
||||||
|
@ -341,7 +340,6 @@ terminal_screen_init (TerminalScreen *screen)
|
||||||
vte_terminal_set_mouse_autohide (VTE_TERMINAL (screen), TRUE);
|
vte_terminal_set_mouse_autohide (VTE_TERMINAL (screen), TRUE);
|
||||||
|
|
||||||
priv->child_pid = -1;
|
priv->child_pid = -1;
|
||||||
priv->pty_fd = -1;
|
|
||||||
|
|
||||||
priv->font_scale = PANGO_SCALE_MEDIUM;
|
priv->font_scale = PANGO_SCALE_MEDIUM;
|
||||||
|
|
||||||
|
@ -1480,7 +1478,6 @@ terminal_screen_launch_child_cb (TerminalScreen *screen)
|
||||||
}
|
}
|
||||||
|
|
||||||
priv->child_pid = pid;
|
priv->child_pid = pid;
|
||||||
priv->pty_fd = vte_terminal_get_pty (terminal);
|
|
||||||
|
|
||||||
g_free (shell);
|
g_free (shell);
|
||||||
g_strfreev (argv);
|
g_strfreev (argv);
|
||||||
|
@ -1714,8 +1711,10 @@ terminal_screen_get_current_dir (TerminalScreen *screen)
|
||||||
{
|
{
|
||||||
TerminalScreenPrivate *priv = screen->priv;
|
TerminalScreenPrivate *priv = screen->priv;
|
||||||
char *cwd;
|
char *cwd;
|
||||||
|
VtePty *pty;
|
||||||
|
|
||||||
if (priv->pty_fd != -1)
|
pty = vte_terminal_get_pty (VTE_TERMINAL (screen));
|
||||||
|
if (pty != NULL)
|
||||||
{
|
{
|
||||||
#if 0
|
#if 0
|
||||||
/* Get the foreground process ID */
|
/* Get the foreground process ID */
|
||||||
|
@ -1747,9 +1746,11 @@ terminal_screen_get_current_dir (TerminalScreen *screen)
|
||||||
char*
|
char*
|
||||||
terminal_screen_get_current_dir_with_fallback (TerminalScreen *screen)
|
terminal_screen_get_current_dir_with_fallback (TerminalScreen *screen)
|
||||||
{
|
{
|
||||||
|
VtePty *pty;
|
||||||
TerminalScreenPrivate *priv = screen->priv;
|
TerminalScreenPrivate *priv = screen->priv;
|
||||||
|
|
||||||
if (priv->pty_fd == -1)
|
pty = vte_terminal_get_pty (VTE_TERMINAL (screen));
|
||||||
|
if (pty == NULL)
|
||||||
return g_strdup (priv->initial_working_directory);
|
return g_strdup (priv->initial_working_directory);
|
||||||
|
|
||||||
return terminal_screen_get_current_dir (screen);
|
return terminal_screen_get_current_dir (screen);
|
||||||
|
@ -1817,7 +1818,6 @@ terminal_screen_child_exited (VteTerminal *terminal, int status)
|
||||||
screen);
|
screen);
|
||||||
|
|
||||||
priv->child_pid = -1;
|
priv->child_pid = -1;
|
||||||
priv->pty_fd = -1;
|
|
||||||
|
|
||||||
action = terminal_profile_get_property_enum (priv->profile, TERMINAL_PROFILE_EXIT_ACTION);
|
action = terminal_profile_get_property_enum (priv->profile, TERMINAL_PROFILE_EXIT_ACTION);
|
||||||
|
|
||||||
|
@ -2271,12 +2271,19 @@ gboolean
|
||||||
terminal_screen_has_foreground_process (TerminalScreen *screen)
|
terminal_screen_has_foreground_process (TerminalScreen *screen)
|
||||||
{
|
{
|
||||||
TerminalScreenPrivate *priv = screen->priv;
|
TerminalScreenPrivate *priv = screen->priv;
|
||||||
|
VtePty *pty;
|
||||||
|
int fd;
|
||||||
int fgpid;
|
int fgpid;
|
||||||
|
|
||||||
if (priv->pty_fd == -1)
|
pty = vte_terminal_get_pty (VTE_TERMINAL (screen));
|
||||||
|
if (pty == NULL)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
fgpid = tcgetpgrp (priv->pty_fd);
|
fd = vte_pty_get_fd (pty);
|
||||||
|
if (fd == -1)
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
fgpid = tcgetpgrp (fd);
|
||||||
if (fgpid == -1 || fgpid == priv->child_pid)
|
if (fgpid == -1 || fgpid == priv->child_pid)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue