mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-01-10 01:48:00 +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:
parent
3f8bd28598
commit
7fbbad0ce1
20
windlg.c
20
windlg.c
@ -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)
|
||||
|| (cfg.protocol == PROT_TELNET && cfg.port != 23)
|
||||
|| (cfg.protocol == PROT_RLOGIN
|
||||
&& cfg.port != 513)) {
|
||||
/*
|
||||
* 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 = i ? 22 : j ? 23 : 513;
|
||||
SetDlgItemInt(hwnd, IDC_PORT, cfg.port, FALSE);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user