Recognize extended keyboard mode
This commit is contained in:
parent
96921e3a39
commit
45334d6b35
@ -245,7 +245,7 @@ PyTypeObject ChangeTracker_Type;
|
|||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
bool mLNM, mIRM, mDECTCEM, mDECSCNM, mDECOM, mDECAWM, mDECCOLM, mDECARM, mDECCKM,
|
bool mLNM, mIRM, mDECTCEM, mDECSCNM, mDECOM, mDECAWM, mDECCOLM, mDECARM, mDECCKM,
|
||||||
mBRACKETED_PASTE, mFOCUS_TRACKING;
|
mBRACKETED_PASTE, mFOCUS_TRACKING, mEXTENDED_KEYBOARD;
|
||||||
unsigned long mouse_tracking_mode, mouse_tracking_protocol;
|
unsigned long mouse_tracking_mode, mouse_tracking_protocol;
|
||||||
} ScreenModes;
|
} ScreenModes;
|
||||||
PyTypeObject ScreenModes_Type;
|
PyTypeObject ScreenModes_Type;
|
||||||
|
|||||||
@ -75,3 +75,6 @@
|
|||||||
#define BRACKETED_PASTE (2004 << 5)
|
#define BRACKETED_PASTE (2004 << 5)
|
||||||
#define BRACKETED_PASTE_START "\033[200~"
|
#define BRACKETED_PASTE_START "\033[200~"
|
||||||
#define BRACKETED_PASTE_END "\033[201~"
|
#define BRACKETED_PASTE_END "\033[201~"
|
||||||
|
|
||||||
|
// Extended keyboard protocol
|
||||||
|
#define EXTENDED_KEYBOARD (2017 << 5)
|
||||||
|
|||||||
@ -396,6 +396,7 @@ set_mode_from_const(Screen *self, unsigned int mode, bool val) {
|
|||||||
SIMPLE_MODE(IRM)
|
SIMPLE_MODE(IRM)
|
||||||
SIMPLE_MODE(DECARM)
|
SIMPLE_MODE(DECARM)
|
||||||
SIMPLE_MODE(BRACKETED_PASTE)
|
SIMPLE_MODE(BRACKETED_PASTE)
|
||||||
|
SIMPLE_MODE(EXTENDED_KEYBOARD)
|
||||||
SIMPLE_MODE(FOCUS_TRACKING)
|
SIMPLE_MODE(FOCUS_TRACKING)
|
||||||
MOUSE_MODE(MOUSE_BUTTON_TRACKING, mouse_tracking_mode, BUTTON_MODE)
|
MOUSE_MODE(MOUSE_BUTTON_TRACKING, mouse_tracking_mode, BUTTON_MODE)
|
||||||
MOUSE_MODE(MOUSE_MOTION_TRACKING, mouse_tracking_mode, MOTION_MODE)
|
MOUSE_MODE(MOUSE_MOTION_TRACKING, mouse_tracking_mode, MOTION_MODE)
|
||||||
@ -919,6 +920,7 @@ report_mode_status(Screen *self, unsigned int which, bool private) {
|
|||||||
KNOWN_MODE(DECARM);
|
KNOWN_MODE(DECARM);
|
||||||
KNOWN_MODE(DECCKM);
|
KNOWN_MODE(DECCKM);
|
||||||
KNOWN_MODE(BRACKETED_PASTE);
|
KNOWN_MODE(BRACKETED_PASTE);
|
||||||
|
KNOWN_MODE(EXTENDED_KEYBOARD);
|
||||||
KNOWN_MODE(FOCUS_TRACKING);
|
KNOWN_MODE(FOCUS_TRACKING);
|
||||||
#undef KNOWN_MODE
|
#undef KNOWN_MODE
|
||||||
}
|
}
|
||||||
@ -1071,6 +1073,7 @@ WRAP1B(erase_in_display, 0)
|
|||||||
static int name##_set(Screen *self, PyObject *val, void UNUSED *closure) { if (val == NULL) { PyErr_SetString(PyExc_TypeError, "Cannot delete attribute"); return -1; } set_mode_from_const(self, uname, PyObject_IsTrue(val) ? true : false); return 0; }
|
static int name##_set(Screen *self, PyObject *val, void UNUSED *closure) { if (val == NULL) { PyErr_SetString(PyExc_TypeError, "Cannot delete attribute"); return -1; } set_mode_from_const(self, uname, PyObject_IsTrue(val) ? true : false); return 0; }
|
||||||
|
|
||||||
MODE_GETSET(in_bracketed_paste_mode, BRACKETED_PASTE)
|
MODE_GETSET(in_bracketed_paste_mode, BRACKETED_PASTE)
|
||||||
|
MODE_GETSET(extended_keyboard, EXTENDED_KEYBOARD)
|
||||||
MODE_GETSET(focus_tracking_enabled, FOCUS_TRACKING)
|
MODE_GETSET(focus_tracking_enabled, FOCUS_TRACKING)
|
||||||
MODE_GETSET(auto_repeat_enabled, DECARM)
|
MODE_GETSET(auto_repeat_enabled, DECARM)
|
||||||
MODE_GETSET(cursor_visible, DECTCEM)
|
MODE_GETSET(cursor_visible, DECTCEM)
|
||||||
@ -1275,6 +1278,7 @@ static PyMethodDef methods[] = {
|
|||||||
|
|
||||||
static PyGetSetDef getsetters[] = {
|
static PyGetSetDef getsetters[] = {
|
||||||
GETSET(in_bracketed_paste_mode)
|
GETSET(in_bracketed_paste_mode)
|
||||||
|
GETSET(extended_keyboard)
|
||||||
GETSET(auto_repeat_enabled)
|
GETSET(auto_repeat_enabled)
|
||||||
GETSET(focus_tracking_enabled)
|
GETSET(focus_tracking_enabled)
|
||||||
GETSET(cursor_visible)
|
GETSET(cursor_visible)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user