From 7af753e651143f2370eb086634a387f2eb58c6de Mon Sep 17 00:00:00 2001 From: simon Date: Thu, 6 Mar 2003 12:57:37 +0000 Subject: [PATCH] Richard B's patch to add WINDOWID support to pterm. git-svn-id: svn://svn.tartarus.org/sgt/putty@2912 cda61777-01e9-0310-a592-d414129be87e --- unix/pterm.c | 7 +++++++ unix/pty.c | 8 ++++++++ unix/unix.h | 1 + 3 files changed, 16 insertions(+) diff --git a/unix/pterm.c b/unix/pterm.c index 66b55ffc..aaed73b8 100644 --- a/unix/pterm.c +++ b/unix/pterm.c @@ -1978,6 +1978,13 @@ char *get_x_display(void *frontend) return gdk_get_display(); } +long get_windowid(void *frontend) +{ + Terminal *term = (Terminal *)frontend; + struct gui_data *inst = (struct gui_data *)(term->frontend); + return (long)GDK_WINDOW_XWINDOW(inst->area->window); +} + static void help(FILE *fp) { if(fprintf(fp, "pterm option summary:\n" diff --git a/unix/pty.c b/unix/pty.c index 37f50503..63fe69e9 100644 --- a/unix/pty.c +++ b/unix/pty.c @@ -394,6 +394,7 @@ static char *pty_init(void *frontend, void **backend_handle, Config *cfg, { int slavefd; pid_t pid, pgrp; + long windowid; pty_frontend = frontend; *backend_handle = NULL; /* we can't sensibly use this, sadly */ @@ -435,6 +436,8 @@ static char *pty_init(void *frontend, void **backend_handle, Config *cfg, } } + windowid = get_windowid(pty_frontend); + /* * Fork and execute the command. */ @@ -476,6 +479,11 @@ static char *pty_init(void *frontend, void **backend_handle, Config *cfg, sprintf(term_env_var, "TERM=%s", cfg->termtype); putenv(term_env_var); } + { + char windowid_env_var[40]; + sprintf(windowid_env_var, "WINDOWID=%ld", windowid); + putenv(windowid_env_var); + } /* * SIGINT and SIGQUIT may have been set to ignored by our * parent, particularly by things like sh -c 'pterm &' and diff --git a/unix/unix.h b/unix/unix.h index e821cd49..c7f24709 100644 --- a/unix/unix.h +++ b/unix/unix.h @@ -47,6 +47,7 @@ GLOBAL void *logctx; /* Things pty.c needs from pterm.c */ char *get_x_display(void *frontend); int font_dimension(void *frontend, int which);/* 0 for width, 1 for height */ +long get_windowid(void *frontend); /* Things uxstore.c needs from pterm.c */ char *x_get_default(const char *key); -- 2.11.0