mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-01-10 01:48:00 +00:00
`Change Settings' now behaves sensibly w.r.t. window size.
[originally from svn r841]
This commit is contained in:
parent
fc478e6cad
commit
f2b13650c8
1
putty.h
1
putty.h
@ -284,6 +284,7 @@ void showabout (HWND);
|
||||
void verify_ssh_host_key(char *host, int port, char *keytype,
|
||||
char *keystr, char *fingerprint);
|
||||
void registry_cleanup(void);
|
||||
void force_normal(HWND hwnd);
|
||||
|
||||
GLOBAL int nsessions;
|
||||
GLOBAL char **sessions;
|
||||
|
6
windlg.c
6
windlg.c
@ -17,7 +17,7 @@ static HWND logbox = NULL, abtbox = NULL;
|
||||
|
||||
static int readytogo;
|
||||
|
||||
static void force_normal(HWND hwnd)
|
||||
void force_normal(HWND hwnd)
|
||||
{
|
||||
static int recurse = 0;
|
||||
|
||||
@ -27,7 +27,7 @@ static void force_normal(HWND hwnd)
|
||||
recurse = 1;
|
||||
|
||||
wp.length = sizeof(wp);
|
||||
if (GetWindowPlacement(hwnd, &wp))
|
||||
if (GetWindowPlacement(hwnd, &wp) && wp.showCmd == SW_SHOWMAXIMIZED)
|
||||
{
|
||||
wp.showCmd = SW_SHOWNORMAL;
|
||||
SetWindowPlacement(hwnd, &wp);
|
||||
@ -1787,8 +1787,6 @@ int do_reconfig (HWND hwnd) {
|
||||
ret = DialogBox (hinst, MAKEINTRESOURCE(IDD_RECONF), hwnd, ReconfDlgProc);
|
||||
if (!ret)
|
||||
cfg = backup_cfg; /* structure copy */
|
||||
else
|
||||
force_normal(hwnd);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
21
window.c
21
window.c
@ -1169,6 +1169,9 @@ static LRESULT CALLBACK WndProc (HWND hwnd, UINT message,
|
||||
case IDM_RECONF:
|
||||
{
|
||||
int prev_alwaysontop = cfg.alwaysontop;
|
||||
int need_setwpos = FALSE;
|
||||
cfg.width = cols;
|
||||
cfg.height = rows;
|
||||
if (!do_reconfig(hwnd))
|
||||
break;
|
||||
just_reconfigged = TRUE;
|
||||
@ -1231,6 +1234,7 @@ static LRESULT CALLBACK WndProc (HWND hwnd, UINT message,
|
||||
SetWindowLong(hwnd, GWL_EXSTYLE, nexflag);
|
||||
|
||||
SendMessage (hwnd, WM_IGNORE_SIZE, 0, 0);
|
||||
|
||||
SetWindowPos(hwnd, NULL, 0,0,0,0,
|
||||
SWP_NOACTIVATE|SWP_NOCOPYBITS|
|
||||
SWP_NOMOVE|SWP_NOSIZE|SWP_NOZORDER|
|
||||
@ -1243,13 +1247,20 @@ static LRESULT CALLBACK WndProc (HWND hwnd, UINT message,
|
||||
}
|
||||
}
|
||||
|
||||
if (cfg.height != rows ||
|
||||
cfg.width != cols ||
|
||||
cfg.savelines != savelines)
|
||||
need_setwpos = TRUE;
|
||||
term_size(cfg.height, cfg.width, cfg.savelines);
|
||||
InvalidateRect(hwnd, NULL, TRUE);
|
||||
SetWindowPos (hwnd, NULL, 0, 0,
|
||||
extra_width + font_width * cfg.width,
|
||||
extra_height + font_height * cfg.height,
|
||||
SWP_NOACTIVATE | SWP_NOCOPYBITS |
|
||||
SWP_NOMOVE | SWP_NOZORDER);
|
||||
if (need_setwpos) {
|
||||
force_normal(hwnd);
|
||||
SetWindowPos (hwnd, NULL, 0, 0,
|
||||
extra_width + font_width * cfg.width,
|
||||
extra_height + font_height * cfg.height,
|
||||
SWP_NOACTIVATE | SWP_NOCOPYBITS |
|
||||
SWP_NOMOVE | SWP_NOZORDER);
|
||||
}
|
||||
if (IsIconic(hwnd)) {
|
||||
SetWindowText (hwnd,
|
||||
cfg.win_name_always ? window_name : icon_name);
|
||||
|
Loading…
Reference in New Issue
Block a user