aboutsummaryrefslogtreecommitdiff
path: root/tty-keys.c
diff options
context:
space:
mode:
authorThomas Adam <thomas@xteddy.org>2014-08-09 20:31:36 +0100
committerThomas Adam <thomas@xteddy.org>2014-08-09 20:31:36 +0100
commita131b82e95df990528371b1d9ca40ee2be264fc8 (patch)
tree156ef097c276e22b60581e3058e2661327240869 /tty-keys.c
parentfd3b7f357200b85a6f3d6e39bae676c7c70ba082 (diff)
parent1ac96200a7462597b137719b376f40ad0cd85216 (diff)
downloadrtmux-a131b82e95df990528371b1d9ca40ee2be264fc8.tar.gz
rtmux-a131b82e95df990528371b1d9ca40ee2be264fc8.tar.bz2
rtmux-a131b82e95df990528371b1d9ca40ee2be264fc8.zip
Merge branch 'obsd-master'
Conflicts: client.c
Diffstat (limited to 'tty-keys.c')
-rw-r--r--tty-keys.c104
1 files changed, 64 insertions, 40 deletions
diff --git a/tty-keys.c b/tty-keys.c
index 97b49a20..557ecd55 100644
--- a/tty-keys.c
+++ b/tty-keys.c
@@ -113,14 +113,6 @@ const struct tty_default_key_raw tty_default_raw_keys[] = {
{ "\033[21^", KEYC_F10|KEYC_CTRL },
{ "\033[23^", KEYC_F11|KEYC_CTRL },
{ "\033[24^", KEYC_F12|KEYC_CTRL },
- { "\033[25^", KEYC_F13|KEYC_CTRL },
- { "\033[26^", KEYC_F14|KEYC_CTRL },
- { "\033[28^", KEYC_F15|KEYC_CTRL },
- { "\033[29^", KEYC_F16|KEYC_CTRL },
- { "\033[31^", KEYC_F17|KEYC_CTRL },
- { "\033[32^", KEYC_F18|KEYC_CTRL },
- { "\033[33^", KEYC_F19|KEYC_CTRL },
- { "\033[34^", KEYC_F20|KEYC_CTRL },
{ "\033[2^", KEYC_IC|KEYC_CTRL },
{ "\033[3^", KEYC_DC|KEYC_CTRL },
{ "\033[7^", KEYC_HOME|KEYC_CTRL },
@@ -140,14 +132,6 @@ const struct tty_default_key_raw tty_default_raw_keys[] = {
{ "\033[21$", KEYC_F10|KEYC_SHIFT },
{ "\033[23$", KEYC_F11|KEYC_SHIFT },
{ "\033[24$", KEYC_F12|KEYC_SHIFT },
- { "\033[25$", KEYC_F13|KEYC_SHIFT },
- { "\033[26$", KEYC_F14|KEYC_SHIFT },
- { "\033[28$", KEYC_F15|KEYC_SHIFT },
- { "\033[29$", KEYC_F16|KEYC_SHIFT },
- { "\033[31$", KEYC_F17|KEYC_SHIFT },
- { "\033[32$", KEYC_F18|KEYC_SHIFT },
- { "\033[33$", KEYC_F19|KEYC_SHIFT },
- { "\033[34$", KEYC_F20|KEYC_SHIFT },
{ "\033[2$", KEYC_IC|KEYC_SHIFT },
{ "\033[3$", KEYC_DC|KEYC_SHIFT },
{ "\033[7$", KEYC_HOME|KEYC_SHIFT },
@@ -167,14 +151,6 @@ const struct tty_default_key_raw tty_default_raw_keys[] = {
{ "\033[21@", KEYC_F10|KEYC_CTRL|KEYC_SHIFT },
{ "\033[23@", KEYC_F11|KEYC_CTRL|KEYC_SHIFT },
{ "\033[24@", KEYC_F12|KEYC_CTRL|KEYC_SHIFT },
- { "\033[25@", KEYC_F13|KEYC_CTRL|KEYC_SHIFT },
- { "\033[26@", KEYC_F14|KEYC_CTRL|KEYC_SHIFT },
- { "\033[28@", KEYC_F15|KEYC_CTRL|KEYC_SHIFT },
- { "\033[29@", KEYC_F16|KEYC_CTRL|KEYC_SHIFT },
- { "\033[31@", KEYC_F17|KEYC_CTRL|KEYC_SHIFT },
- { "\033[32@", KEYC_F18|KEYC_CTRL|KEYC_SHIFT },
- { "\033[33@", KEYC_F19|KEYC_CTRL|KEYC_SHIFT },
- { "\033[34@", KEYC_F20|KEYC_CTRL|KEYC_SHIFT },
{ "\033[2@", KEYC_IC|KEYC_CTRL|KEYC_SHIFT },
{ "\033[3@", KEYC_DC|KEYC_CTRL|KEYC_SHIFT },
{ "\033[7@", KEYC_HOME|KEYC_CTRL|KEYC_SHIFT },
@@ -206,14 +182,63 @@ const struct tty_default_key_code tty_default_code_keys[] = {
{ TTYC_KF10, KEYC_F10 },
{ TTYC_KF11, KEYC_F11 },
{ TTYC_KF12, KEYC_F12 },
- { TTYC_KF13, KEYC_F13 },
- { TTYC_KF14, KEYC_F14 },
- { TTYC_KF15, KEYC_F15 },
- { TTYC_KF16, KEYC_F16 },
- { TTYC_KF17, KEYC_F17 },
- { TTYC_KF18, KEYC_F18 },
- { TTYC_KF19, KEYC_F19 },
- { TTYC_KF20, KEYC_F20 },
+
+ { TTYC_KF13, KEYC_F1|KEYC_SHIFT },
+ { TTYC_KF14, KEYC_F2|KEYC_SHIFT },
+ { TTYC_KF15, KEYC_F3|KEYC_SHIFT },
+ { TTYC_KF16, KEYC_F4|KEYC_SHIFT },
+ { TTYC_KF17, KEYC_F5|KEYC_SHIFT },
+ { TTYC_KF18, KEYC_F6|KEYC_SHIFT },
+ { TTYC_KF19, KEYC_F7|KEYC_SHIFT },
+ { TTYC_KF20, KEYC_F8|KEYC_SHIFT },
+ { TTYC_KF21, KEYC_F9|KEYC_SHIFT },
+ { TTYC_KF22, KEYC_F10|KEYC_SHIFT },
+ { TTYC_KF23, KEYC_F11|KEYC_SHIFT },
+ { TTYC_KF24, KEYC_F12|KEYC_SHIFT },
+
+ { TTYC_KF25, KEYC_F1|KEYC_CTRL },
+ { TTYC_KF26, KEYC_F2|KEYC_CTRL },
+ { TTYC_KF27, KEYC_F3|KEYC_CTRL },
+ { TTYC_KF28, KEYC_F4|KEYC_CTRL },
+ { TTYC_KF29, KEYC_F5|KEYC_CTRL },
+ { TTYC_KF30, KEYC_F6|KEYC_CTRL },
+ { TTYC_KF31, KEYC_F7|KEYC_CTRL },
+ { TTYC_KF32, KEYC_F8|KEYC_CTRL },
+ { TTYC_KF33, KEYC_F9|KEYC_CTRL },
+ { TTYC_KF34, KEYC_F10|KEYC_CTRL },
+ { TTYC_KF35, KEYC_F11|KEYC_CTRL },
+ { TTYC_KF36, KEYC_F12|KEYC_CTRL },
+
+ { TTYC_KF37, KEYC_F1|KEYC_SHIFT|KEYC_CTRL },
+ { TTYC_KF38, KEYC_F2|KEYC_SHIFT|KEYC_CTRL },
+ { TTYC_KF39, KEYC_F3|KEYC_SHIFT|KEYC_CTRL },
+ { TTYC_KF40, KEYC_F4|KEYC_SHIFT|KEYC_CTRL },
+ { TTYC_KF41, KEYC_F5|KEYC_SHIFT|KEYC_CTRL },
+ { TTYC_KF42, KEYC_F6|KEYC_SHIFT|KEYC_CTRL },
+ { TTYC_KF43, KEYC_F7|KEYC_SHIFT|KEYC_CTRL },
+ { TTYC_KF44, KEYC_F8|KEYC_SHIFT|KEYC_CTRL },
+ { TTYC_KF45, KEYC_F9|KEYC_SHIFT|KEYC_CTRL },
+ { TTYC_KF46, KEYC_F10|KEYC_SHIFT|KEYC_CTRL },
+ { TTYC_KF47, KEYC_F11|KEYC_SHIFT|KEYC_CTRL },
+ { TTYC_KF48, KEYC_F12|KEYC_SHIFT|KEYC_CTRL },
+
+ { TTYC_KF49, KEYC_F1|KEYC_ESCAPE },
+ { TTYC_KF50, KEYC_F2|KEYC_ESCAPE },
+ { TTYC_KF51, KEYC_F3|KEYC_ESCAPE },
+ { TTYC_KF52, KEYC_F4|KEYC_ESCAPE },
+ { TTYC_KF53, KEYC_F5|KEYC_ESCAPE },
+ { TTYC_KF54, KEYC_F6|KEYC_ESCAPE },
+ { TTYC_KF55, KEYC_F7|KEYC_ESCAPE },
+ { TTYC_KF56, KEYC_F8|KEYC_ESCAPE },
+ { TTYC_KF57, KEYC_F9|KEYC_ESCAPE },
+ { TTYC_KF58, KEYC_F10|KEYC_ESCAPE },
+ { TTYC_KF59, KEYC_F11|KEYC_ESCAPE },
+ { TTYC_KF60, KEYC_F12|KEYC_ESCAPE },
+
+ { TTYC_KF61, KEYC_F1|KEYC_ESCAPE|KEYC_SHIFT },
+ { TTYC_KF62, KEYC_F2|KEYC_ESCAPE|KEYC_SHIFT },
+ { TTYC_KF63, KEYC_F3|KEYC_ESCAPE|KEYC_SHIFT },
+
{ TTYC_KICH1, KEYC_IC },
{ TTYC_KDCH1, KEYC_DC },
{ TTYC_KHOME, KEYC_HOME },
@@ -786,25 +811,24 @@ tty_keys_mouse(struct tty *tty, const char *buf, size_t len, size_t *size)
m->button = 3;
} else if ((b & MOUSE_MASK_BUTTONS) == 3) {
- if (~m->event & MOUSE_EVENT_DRAG && x == m->x && y == m->y)
+ if (~m->event & MOUSE_EVENT_DRAG && x == m->sx && y == m->sy) {
m->event = MOUSE_EVENT_CLICK;
- else
+ m->clicks = (m->clicks + 1) % 3;
+ } else
m->event = MOUSE_EVENT_DRAG;
m->event |= MOUSE_EVENT_UP;
} else {
if (b & MOUSE_MASK_DRAG)
m->event = MOUSE_EVENT_DRAG;
else {
- if (m->event & MOUSE_EVENT_UP && x == m->x && y == m->y)
- m->clicks = (m->clicks + 1) % 3;
- else
- m->clicks = 0;
- m->sx = x;
- m->sy = y;
m->event = MOUSE_EVENT_DOWN;
+ if (x != m->sx || y != m->sy)
+ m->clicks = 0;
}
m->button = (b & MOUSE_MASK_BUTTONS);
}
+ m->sx = x;
+ m->sy = y;
return (0);
}