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;
static int readytogo;
-static void force_normal(HWND hwnd)
+void force_normal(HWND hwnd)
{
static int recurse = 0;
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);
ret = DialogBox (hinst, MAKEINTRESOURCE(IDD_RECONF), hwnd, ReconfDlgProc);
if (!ret)
cfg = backup_cfg; /* structure copy */
- else
- force_normal(hwnd);
return ret;
}
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;
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|
}
}
+ 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);