|
|
@ -118,6 +118,7 @@ enum term_mode {
|
|
|
|
MODE_8BIT = 8192,
|
|
|
|
MODE_8BIT = 8192,
|
|
|
|
MODE_BLINK = 16384,
|
|
|
|
MODE_BLINK = 16384,
|
|
|
|
MODE_FBLINK = 32768,
|
|
|
|
MODE_FBLINK = 32768,
|
|
|
|
|
|
|
|
MODE_FOCUS = 65536,
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
enum escape_state {
|
|
|
|
enum escape_state {
|
|
|
@ -1782,6 +1783,13 @@ tsetmode(bool priv, bool set, int *args, int narg) {
|
|
|
|
MODBIT(term.mode, set, MODE_MOUSEMOTION);
|
|
|
|
MODBIT(term.mode, set, MODE_MOUSEMOTION);
|
|
|
|
MODBIT(term.mode, 0, MODE_MOUSEBTN);
|
|
|
|
MODBIT(term.mode, 0, MODE_MOUSEBTN);
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
|
|
|
|
case 1003: /* 1003: enable all mouse reports */
|
|
|
|
|
|
|
|
MODBIT(term.mode, set, MODE_MOUSEMOTION);
|
|
|
|
|
|
|
|
MODBIT(term.mode, set, MODE_MOUSEBTN);
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
case 1004:
|
|
|
|
|
|
|
|
MODBIT(term.mode, set, MODE_FOCUS);
|
|
|
|
|
|
|
|
break;
|
|
|
|
case 1006:
|
|
|
|
case 1006:
|
|
|
|
MODBIT(term.mode, set, MODE_MOUSESGR);
|
|
|
|
MODBIT(term.mode, set, MODE_MOUSESGR);
|
|
|
|
break;
|
|
|
|
break;
|
|
|
@ -1807,6 +1815,9 @@ tsetmode(bool priv, bool set, int *args, int narg) {
|
|
|
|
case 1048:
|
|
|
|
case 1048:
|
|
|
|
tcursor((set) ? CURSOR_SAVE : CURSOR_LOAD);
|
|
|
|
tcursor((set) ? CURSOR_SAVE : CURSOR_LOAD);
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
|
|
|
|
case 9: /* X10 compatibility mode */
|
|
|
|
|
|
|
|
case 1001: /* mouse highlight mode; can hang the
|
|
|
|
|
|
|
|
terminal when implemented. */
|
|
|
|
default:
|
|
|
|
default:
|
|
|
|
fprintf(stderr,
|
|
|
|
fprintf(stderr,
|
|
|
|
"erresc: unknown private set/reset mode %d\n",
|
|
|
|
"erresc: unknown private set/reset mode %d\n",
|
|
|
@ -3309,9 +3320,13 @@ focus(XEvent *ev) {
|
|
|
|
XSetICFocus(xw.xic);
|
|
|
|
XSetICFocus(xw.xic);
|
|
|
|
xw.state |= WIN_FOCUSED;
|
|
|
|
xw.state |= WIN_FOCUSED;
|
|
|
|
xseturgency(0);
|
|
|
|
xseturgency(0);
|
|
|
|
|
|
|
|
if(IS_SET(MODE_FOCUS))
|
|
|
|
|
|
|
|
ttywrite("\033[I", 3);
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
XUnsetICFocus(xw.xic);
|
|
|
|
XUnsetICFocus(xw.xic);
|
|
|
|
xw.state &= ~WIN_FOCUSED;
|
|
|
|
xw.state &= ~WIN_FOCUSED;
|
|
|
|
|
|
|
|
if(IS_SET(MODE_FOCUS))
|
|
|
|
|
|
|
|
ttywrite("\033[O", 3);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|