set_input_locale(GetKeyboardLayout(0));
/*
- * Finally show the window!
+ * Open the initial log file if there is one.
*/
- ShowWindow(hwnd, show);
- SetForegroundWindow(hwnd);
+ logfopen();
/*
- * Open the initial log file if there is one.
+ * Finally show the window!
*/
- logfopen();
+ ShowWindow(hwnd, show);
+ SetForegroundWindow(hwnd);
/*
* Set the palette up.
cfg.width != prev_cfg.width ||
cfg.savelines != prev_cfg.savelines ||
cfg.resize_action == RESIZE_FONT ||
+ (cfg.resize_action == RESIZE_EITHER && IsZoomed(hwnd)) ||
cfg.resize_action == RESIZE_DISABLED)
term_size(cfg.height, cfg.width, cfg.savelines);
nflg |= WS_VSCROLL;
else
nflg &= ~WS_VSCROLL;
+
+ if (cfg.resize_action == RESIZE_DISABLED ||
+ is_full_screen())
+ nflg &= ~WS_THICKFRAME;
+ else
+ nflg |= WS_THICKFRAME;
+
if (cfg.resize_action == RESIZE_DISABLED)
- nflg &= ~(WS_THICKFRAME | WS_MAXIMIZEBOX);
+ nflg &= ~WS_MAXIMIZEBOX;
else
- nflg |= (WS_THICKFRAME | WS_MAXIMIZEBOX);
+ nflg |= WS_MAXIMIZEBOX;
if (nflg != flag || nexflag != exflag) {
if (nflg != flag)
cfg.win_name_always ? window_name : icon_name);
if (wParam == SIZE_RESTORED || wParam == SIZE_MAXIMIZED)
SetWindowText(hwnd, window_name);
+ if (wParam == SIZE_RESTORED)
+ clear_full_screen();
+ if (wParam == SIZE_MAXIMIZED && fullscr_on_max) {
+ make_full_screen();
+ fullscr_on_max = FALSE;
+ }
if (cfg.resize_action == RESIZE_DISABLED) {
/* A resize, well it better be a minimize. */
term_size(h, w, cfg.savelines);
}
- if (fullscr_on_max)
- make_full_screen();
- fullscr_on_max = FALSE;
reset_window(0);
} else if (wParam == SIZE_RESTORED && was_zoomed) {
was_zoomed = 0;
- clear_full_screen();
if (cfg.resize_action == RESIZE_TERM)
term_size(prev_rows, prev_cols, cfg.savelines);
if (cfg.resize_action != RESIZE_FONT)
HIMC hIMC;
int n;
char *buff;
-
+
if(osVersion.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS ||
osVersion.dwPlatformId == VER_PLATFORM_WIN32s) break; /* no Unicode */
n = ImmGetCompositionStringW(hIMC, GCS_RESULTSTR, NULL, 0);
if (n > 0) {
+ int i;
buff = (char*) smalloc(n);
ImmGetCompositionStringW(hIMC, GCS_RESULTSTR, buff, n);
- luni_send((unsigned short *)buff, n / 2, 1);
+ /*
+ * Jaeyoun Chung reports that Korean character
+ * input doesn't work correctly if we do a single
+ * luni_send() covering the whole of buff. So
+ * instead we luni_send the characters one by one.
+ */
+ for (i = 0; i < n; i += 2)
+ luni_send((unsigned short *)(buff+i), 1, 1);
free(buff);
}
ImmReleaseContext(hwnd, hIMC);
p += sprintf((char *) p, "\x1B%c", xkey);
else {
int app_flg = (app_cursor_keys && !cfg.no_applic_c);
- /* VT100 & VT102 manuals both state the app cursor keys
- * only work if the app keypad is on.
+#if 0
+ /*
+ * RDB: VT100 & VT102 manuals both state the
+ * app cursor keys only work if the app keypad
+ * is on.
+ *
+ * SGT: That may well be true, but xterm
+ * disagrees and so does at least one
+ * application, so I've #if'ed this out and the
+ * behaviour is back to PuTTY's original: app
+ * cursor and app keypad are independently
+ * switchable modes. If anyone complains about
+ * _this_ I'll have to put in a configurable
+ * option.
*/
if (!app_keypad_keys)
app_flg = 0;
+#endif
/* Useful mapping of Ctrl-arrows */
if (shift_state == 2)
app_flg = !app_flg;
/* Reinstate the window furniture. */
style = oldstyle = GetWindowLong(hwnd, GWL_STYLE);
- style |= WS_CAPTION | WS_BORDER | WS_THICKFRAME;
+ style |= WS_CAPTION | WS_BORDER;
+ if (cfg.resize_action == RESIZE_DISABLED)
+ style &= ~WS_THICKFRAME;
+ else
+ style |= WS_THICKFRAME;
if (cfg.scrollbar)
style |= WS_VSCROLL;
else