+ just_reconfigged = TRUE;
+ {
+ int i;
+ for (i=0; i<8; i++)
+ if (fonts[i])
+ DeleteObject(fonts[i]);
+ }
+ bold_mode = cfg.bold_colour ? BOLD_COLOURS : BOLD_FONT;
+ und_mode = UND_FONT;
+ init_fonts(0);
+ sfree(logpal);
+ /*
+ * Telnet will change local echo -> remote if the
+ * remote asks.
+ */
+ if (cfg.protocol != PROT_TELNET)
+ ldisc = (cfg.ldisc_term ? &ldisc_term : &ldisc_simple);
+ if (pal)
+ DeleteObject(pal);
+ logpal = NULL;
+ pal = NULL;
+ cfgtopalette();
+ init_palette();
+
+ /* Enable or disable the scroll bar, etc */
+ {
+ LONG nflg, flag = GetWindowLong(hwnd, GWL_STYLE);
+ LONG nexflag, exflag = GetWindowLong(hwnd, GWL_EXSTYLE);
+
+ nexflag = exflag;
+ if (cfg.alwaysontop != prev_alwaysontop) {
+ if (cfg.alwaysontop) {
+ nexflag = WS_EX_TOPMOST;
+ SetWindowPos(hwnd, HWND_TOPMOST, 0, 0, 0, 0,
+ SWP_NOMOVE | SWP_NOSIZE);
+ } else {
+ nexflag = 0;
+ SetWindowPos(hwnd, HWND_NOTOPMOST, 0, 0, 0, 0,
+ SWP_NOMOVE | SWP_NOSIZE);
+ }
+ }
+
+ nflg = flag;
+ if (cfg.scrollbar) nflg |= WS_VSCROLL;
+ else nflg &= ~WS_VSCROLL;
+ if (cfg.locksize)
+ nflg &= ~(WS_THICKFRAME|WS_MAXIMIZEBOX);
+ else
+ nflg |= (WS_THICKFRAME|WS_MAXIMIZEBOX);
+
+ if (nflg != flag || nexflag != exflag)
+ {
+ RECT cr, wr;
+
+ if (nflg != flag)
+ SetWindowLong(hwnd, GWL_STYLE, nflg);
+ if (nexflag != exflag)
+ 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|
+ SWP_FRAMECHANGED);
+
+ GetWindowRect (hwnd, &wr);
+ GetClientRect (hwnd, &cr);
+ extra_width = wr.right - wr.left - cr.right + cr.left;
+ extra_height = wr.bottom - wr.top - cr.bottom + cr.top;
+ }
+ }