]> asedeno.scripts.mit.edu Git - PuTTY.git/commitdiff
Inhibit the Serial configuration panel in mid-session if the session
authorSimon Tatham <anakin@pobox.com>
Tue, 29 Aug 2006 09:18:09 +0000 (09:18 +0000)
committerSimon Tatham <anakin@pobox.com>
Tue, 29 Aug 2006 09:18:09 +0000 (09:18 +0000)
isn't a serial one. In particular, this causes pterm not to fail an
assertion if you select `Change Settings'. Ahem.

[originally from svn r6831]

unix/gtkdlg.c
unix/unix.h
unix/uxcfg.c
windows/wincfg.c
windows/windlg.c
windows/winstuff.h

index b2725e4475cb113691092acee7fa2a0118b7aaa0..b5b75ef34113ba9a6d65d10f4a5690e98d170395 100644 (file)
@@ -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);
index ff665b9ba9d400e336b447d5c183bf98cebdb379..8235897b69821319f9f426e7f2742e3944ae2e03 100644 (file)
@@ -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);
index de8e8865bfe007a16d5b9f1834342fc490c4d79a..c7d8d5fb0089f3a54b493ec0a0f316801c8e82a6 100644 (file)
@@ -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);
 }
index 574e1e8f75b6b7475973db9174d35eea0a91a569..bc6102d8a413afaaba7be598c40cc53cd6dc4e73 100644 (file)
@@ -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);
 }
index 3f028019ff3fc03a2cf95764bfb51ad02a5c5532..9d9862389d3df788809f30929b6fd2a7fb356001 100644 (file)
@@ -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);
index 2cc0bb9a4fd6107fcafa291d0ee5b9d6710e6721..4436972a8d76debb50732f0ae2f843424bf0a870 100644 (file)
@@ -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.