term->erase_char = term->basic_erase_char;
term->alt_which = 0;
term_print_finish(term);
- term->xterm_mouse = FALSE;
+ term->xterm_mouse = 0;
set_raw_mouse_mode(term->frontend, FALSE);
{
int i;
swap_screen(term, term->cfg.no_alt_screen ? 0 : state, FALSE, FALSE);
term->disptop = 0;
break;
- case 1000: /* xterm mouse 1 */
+ case 1000: /* xterm mouse 1 (normal) */
term->xterm_mouse = state ? 1 : 0;
set_raw_mouse_mode(term->frontend, state);
break;
- case 1002: /* xterm mouse 2 */
+ case 1002: /* xterm mouse 2 (inc. button drags) */
term->xterm_mouse = state ? 2 : 0;
set_raw_mouse_mode(term->frontend, state);
break;
if (term->ldisc)
ldisc_send(term->ldisc,
is_iconic(term->frontend) ?
- "\033[1t" : "\033[2t", 4, 0);
+ "\033[2t" : "\033[1t", 4, 0);
break;
case 13:
if (term->ldisc) {
case 14:
if (term->ldisc) {
get_window_pixels(term->frontend, &x, &y);
- len = sprintf(buf, "\033[4;%d;%dt", x, y);
+ len = sprintf(buf, "\033[4;%d;%dt", y, x);
ldisc_send(term->ldisc, buf, len, 0);
}
break;
set = (uc & CSET_MASK);
c = (uc & ~CSET_MASK);
- cbuf[0] = uc;
- cbuf[1] = 0;
+#ifdef PLATFORM_IS_UTF16
+ if (uc > 0x10000 && uc < 0x110000) {
+ cbuf[0] = 0xD800 | ((uc - 0x10000) >> 10);
+ cbuf[1] = 0xDC00 | ((uc - 0x10000) & 0x3FF);
+ cbuf[2] = 0;
+ } else
+#endif
+ {
+ cbuf[0] = uc;
+ cbuf[1] = 0;
+ }
if (DIRECT_FONT(uc)) {
if (c >= ' ' && c != 0x7F) {
if (modifiers & PKM_CONTROL)
c &= 0x1f;
else if (modifiers & PKM_SHIFT)
- c = toupper(c);
+ c = toupper((unsigned char)c);
}
*p++ = c;
goto done;