aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--termkey.c4
-rw-r--r--termkey.h.in7
2 files changed, 10 insertions, 1 deletions
diff --git a/termkey.c b/termkey.c
index 7a90684..147b82d 100644
--- a/termkey.c
+++ b/termkey.c
@@ -920,6 +920,10 @@ size_t termkey_snprint_key(TermKey *tk, char *buffer, size_t len, TermKeyKey *ke
case TERMKEY_TYPE_FUNCTION:
l = snprintf(buffer + pos, len - pos, "F%d", key->code.number);
break;
+ case TERMKEY_TYPE_MOUSE:
+ l = snprintf(buffer + pos, len - pos, "MOUSE(0x%02x,%d,%d)",
+ key->code.mouse.buttons, key->code.mouse.line, key->code.mouse.col);
+ break;
}
if(l <= 0) return pos;
diff --git a/termkey.h.in b/termkey.h.in
index eebfeff..ae11856 100644
--- a/termkey.h.in
+++ b/termkey.h.in
@@ -89,7 +89,8 @@ typedef enum {
typedef enum {
TERMKEY_TYPE_UNICODE,
TERMKEY_TYPE_FUNCTION,
- TERMKEY_TYPE_KEYSYM
+ TERMKEY_TYPE_KEYSYM,
+ TERMKEY_TYPE_MOUSE,
} TermKeyType;
typedef enum {
@@ -111,6 +112,10 @@ typedef struct {
long codepoint; // TERMKEY_TYPE_UNICODE
int number; // TERMKEY_TYPE_FUNCTION
TermKeySym sym; // TERMKEY_TYPE_KEYSYM
+ struct {
+ short buttons;
+ short col, line;
+ } mouse; // TERMKEY_TYPE_MOUSE
} code;
int modifiers;