1
0
mirror of https://git.tartarus.org/simon/putty.git synced 2025-01-10 09:58:01 +00:00

Work around surreal use of WM_COMMAND in radio button sets. Prevents

port number field resetting unnecessarily when protocol is set to
Raw using the arrow keys.

[originally from svn r1558]
This commit is contained in:
Simon Tatham 2002-02-20 22:28:11 +00:00
parent 3f8bd28598
commit 7fbbad0ce1

View File

@ -2038,10 +2038,22 @@ static int GenericMainDlgProc(HWND hwnd, UINT msg,
cfg.protocol =
i ? PROT_SSH : j ? PROT_TELNET : k ? PROT_RLOGIN :
PROT_RAW;
if ((cfg.protocol == PROT_SSH && cfg.port != 22)
/*
* When switching using the arrow keys, we
* appear to get two of these messages, both
* mentioning the target button in
* LOWORD(wParam), but one of them called while
* the previous button is still checked. This
* causes an unnecessary reset of the port
* number field, which we fix by ensuring here
* that the button selected is indeed the one
* checked.
*/
if (IsDlgButtonChecked(hwnd, LOWORD(wParam)) &&
((cfg.protocol == PROT_SSH && cfg.port != 22)
|| (cfg.protocol == PROT_TELNET && cfg.port != 23)
|| (cfg.protocol == PROT_RLOGIN
&& cfg.port != 513)) {
&& cfg.port != 513))) {
cfg.port = i ? 22 : j ? 23 : 513;
SetDlgItemInt(hwnd, IDC_PORT, cfg.port, FALSE);
}