From 8a7f1392a072f9175cf8dd0ba430bea9616e4c33 Mon Sep 17 00:00:00 2001 From: simon Date: Tue, 29 Aug 2006 09:18:09 +0000 Subject: [PATCH] Inhibit the Serial configuration panel in mid-session if the session isn't a serial one. In particular, this causes pterm not to fail an assertion if you select `Change Settings'. Ahem. git-svn-id: svn://svn.tartarus.org/sgt/putty@6831 cda61777-01e9-0310-a592-d414129be87e --- unix/gtkdlg.c | 2 +- unix/unix.h | 2 +- unix/uxcfg.c | 5 +++-- windows/wincfg.c | 5 +++-- windows/windlg.c | 5 +++-- windows/winstuff.h | 2 +- 6 files changed, 12 insertions(+), 9 deletions(-) diff --git a/unix/gtkdlg.c b/unix/gtkdlg.c index b2725e44..b5b75ef3 100644 --- a/unix/gtkdlg.c +++ b/unix/gtkdlg.c @@ -2055,7 +2055,7 @@ int do_config_box(const char *title, Config *cfg, int midsession, ctrlbox = ctrl_new_box(); setup_config_box(ctrlbox, midsession, cfg->protocol, protcfginfo); - unix_setup_config_box(ctrlbox, midsession); + unix_setup_config_box(ctrlbox, midsession, cfg->protocol); gtk_setup_config_box(ctrlbox, midsession, window); gtk_window_set_title(GTK_WINDOW(window), title); diff --git a/unix/unix.h b/unix/unix.h index ff665b9b..8235897b 100644 --- a/unix/unix.h +++ b/unix/unix.h @@ -105,7 +105,7 @@ void uxsel_input_remove(int id); /* uxcfg.c */ struct controlbox; -void unix_setup_config_box(struct controlbox *b, int midsession); +void unix_setup_config_box(struct controlbox *b, int midsession, int protocol); /* gtkcfg.c */ void gtk_setup_config_box(struct controlbox *b, int midsession, void *window); diff --git a/unix/uxcfg.c b/unix/uxcfg.c index de8e8865..c7d8d5fb 100644 --- a/unix/uxcfg.c +++ b/unix/uxcfg.c @@ -10,7 +10,7 @@ #include "dialog.h" #include "storage.h" -void unix_setup_config_box(struct controlbox *b, int midsession) +void unix_setup_config_box(struct controlbox *b, int midsession, int protocol) { struct controlset *s; union control *c; @@ -75,5 +75,6 @@ void unix_setup_config_box(struct controlbox *b, int midsession) * space parity are not conveniently supported, and neither is * DSR/DTR flow control. */ - ser_setup_config_box(b, midsession, 0x07, 0x07); + if (!midsession || (protocol == PROT_SERIAL)) + ser_setup_config_box(b, midsession, 0x07, 0x07); } diff --git a/windows/wincfg.c b/windows/wincfg.c index 574e1e8f..bc6102d8 100644 --- a/windows/wincfg.c +++ b/windows/wincfg.c @@ -31,7 +31,7 @@ static void help_handler(union control *ctrl, void *dlg, } void win_setup_config_box(struct controlbox *b, HWND *hwndp, int has_help, - int midsession) + int midsession, int protocol) { struct controlset *s; union control *c; @@ -375,5 +375,6 @@ void win_setup_config_box(struct controlbox *b, HWND *hwndp, int has_help, /* * Serial back end is available on Windows. */ - ser_setup_config_box(b, midsession, 0x1F, 0x0F); + if (!midsession || (protocol == PROT_SERIAL)) + ser_setup_config_box(b, midsession, 0x1F, 0x0F); } diff --git a/windows/windlg.c b/windows/windlg.c index 3f028019..9d986238 100644 --- a/windows/windlg.c +++ b/windows/windlg.c @@ -653,7 +653,7 @@ int do_config(void) ctrlbox = ctrl_new_box(); setup_config_box(ctrlbox, FALSE, 0, 0); - win_setup_config_box(ctrlbox, &dp.hwnd, (help_path != NULL), FALSE); + win_setup_config_box(ctrlbox, &dp.hwnd, (help_path != NULL), FALSE, 0); dp_init(&dp); winctrl_init(&ctrls_base); winctrl_init(&ctrls_panel); @@ -685,7 +685,8 @@ int do_reconfig(HWND hwnd, int protcfginfo) ctrlbox = ctrl_new_box(); setup_config_box(ctrlbox, TRUE, cfg.protocol, protcfginfo); - win_setup_config_box(ctrlbox, &dp.hwnd, (help_path != NULL), TRUE); + win_setup_config_box(ctrlbox, &dp.hwnd, (help_path != NULL), TRUE, + cfg.protocol); dp_init(&dp); winctrl_init(&ctrls_base); winctrl_init(&ctrls_panel); diff --git a/windows/winstuff.h b/windows/winstuff.h index 2cc0bb9a..4436972a 100644 --- a/windows/winstuff.h +++ b/windows/winstuff.h @@ -373,7 +373,7 @@ void dp_cleanup(struct dlgparam *dp); * Exports from wincfg.c. */ void win_setup_config_box(struct controlbox *b, HWND *hwndp, int has_help, - int midsession); + int midsession, int protocol); /* * Exports from windlg.c. -- 2.11.0