X-Git-Url: https://git.distorted.org.uk/u/mdw/putty/blobdiff_plain/eae88388e2a74e1e554772f85f4b7acf201ed5e8..0d694692c59504838ec2043ddfe670b3a9247faf:/windlg.c diff --git a/windlg.c b/windlg.c index d2ca6c0d..f164f3e0 100644 --- a/windlg.c +++ b/windlg.c @@ -3,6 +3,7 @@ #include #include #include +#include #include "ssh.h" #include "putty.h" @@ -203,6 +204,9 @@ enum { IDCX_ABOUT = IDC_ABOUT, IDCX_TVSTATIC, IDCX_TREEVIEW, controlstartvalue, IDC_SESSSAVE, IDC_SESSDEL, IDC_CLOSEEXIT, + IDC_COEALWAYS, + IDC_COENEVER, + IDC_COENORMAL, sessionpanelend, loggingpanelstart, @@ -536,7 +540,9 @@ static void init_dlg_ctrls(HWND hwnd) { CheckDlgButton (hwnd, IDC_BLINKCUR, cfg.blink_cur); CheckDlgButton (hwnd, IDC_SCROLLBAR, cfg.scrollbar); CheckDlgButton (hwnd, IDC_LOCKSIZE, cfg.locksize); - CheckDlgButton (hwnd, IDC_CLOSEEXIT, cfg.close_on_exit); + CheckRadioButton (hwnd, IDC_COEALWAYS, IDC_COENORMAL, + cfg.close_on_exit==COE_NORMAL ? IDC_COENORMAL : + cfg.close_on_exit==COE_NEVER ? IDC_COENEVER : IDC_COEALWAYS); CheckDlgButton (hwnd, IDC_CLOSEWARN, cfg.warn_on_close); SetDlgItemText (hwnd, IDC_TTEDIT, cfg.termtype); @@ -658,7 +664,7 @@ static HTREEITEM treeview_insert(struct treeview_faff *faff, */ static void create_controls(HWND hwnd, int dlgtype, int panel) { if (panel == sessionpanelstart) { - /* The Session panel. Accelerators used: [acgo] nprtih elsd x */ + /* The Session panel. Accelerators used: [acgo] nprtih elsd w */ struct ctlpos cp; ctlposinit(&cp, hwnd, 80, 3, 13); bartitle(&cp, "Basic options for your PuTTY session", @@ -698,7 +704,10 @@ static void create_controls(HWND hwnd, int dlgtype, int panel) { endbox(&cp); } beginbox(&cp, NULL, IDC_BOX_SESSION3); - checkbox(&cp, "Close Window on E&xit", IDC_CLOSEEXIT); + radioline(&cp, "Close &window on exit:", IDC_CLOSEEXIT, 4, + "Always", IDC_COEALWAYS, + "Never", IDC_COENEVER, + "Only on clean exit", IDC_COENORMAL, NULL); endbox(&cp); } @@ -947,7 +956,7 @@ static void create_controls(HWND hwnd, int dlgtype, int panel) { beginbox(&cp, "Sending of null packets to keep session active", IDC_BOX_CONNECTION2); staticedit(&cp, "Seconds between &keepalives (0 to turn off)", - IDC_PINGSTATIC, IDC_PINGEDIT, 25); + IDC_PINGSTATIC, IDC_PINGEDIT, 20); endbox(&cp); } @@ -1595,11 +1604,16 @@ static int GenericMainDlgProc (HWND hwnd, UINT msg, GetDlgItemText (hwnd, IDC_WINEDIT, cfg.wintitle, sizeof(cfg.wintitle)-1); break; - case IDC_CLOSEEXIT: - if (HIWORD(wParam) == BN_CLICKED || - HIWORD(wParam) == BN_DOUBLECLICKED) - cfg.close_on_exit = IsDlgButtonChecked (hwnd, IDC_CLOSEEXIT); - break; + case IDC_COEALWAYS: + case IDC_COENEVER: + case IDC_COENORMAL: + if (HIWORD(wParam) == BN_CLICKED || + HIWORD(wParam) == BN_DOUBLECLICKED) { + cfg.close_on_exit = IsDlgButtonChecked (hwnd, IDC_COEALWAYS) ? COE_ALWAYS : + IsDlgButtonChecked (hwnd, IDC_COENEVER) ? COE_NEVER : + COE_NORMAL; + } + break; case IDC_CLOSEWARN: if (HIWORD(wParam) == BN_CLICKED || HIWORD(wParam) == BN_DOUBLECLICKED) @@ -1968,8 +1982,6 @@ static int GenericMainDlgProc (HWND hwnd, UINT msg, static int CALLBACK MainDlgProc (HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { - static HWND page = NULL; - if (msg == WM_COMMAND && LOWORD(wParam) == IDOK) { } if (msg == WM_COMMAND && LOWORD(wParam) == IDCX_ABOUT) { @@ -1984,7 +1996,6 @@ static int CALLBACK MainDlgProc (HWND hwnd, UINT msg, static int CALLBACK ReconfDlgProc (HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { - static HWND page; return GenericMainDlgProc (hwnd, msg, wParam, lParam, 1); }