lkml.org 
[lkml]   [2020]   [Jun]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
Subject[PATCH v1 3/6] vt/vt: Enable mode change via escape sequence
This enables userspace to enable one of the mouse protocols and choose
one of the new event types by escape sequences.

They are not a bitmasks, but mutually exclusive.

And don't forget to reset protocol value also if resetting vc.

Signed-off-by: Tammo Block <tammo.block@gmail.com>
---
drivers/tty/vt/vt.c | 17 +++++++++++++++--
1 file changed, 15 insertions(+), 2 deletions(-)

diff --git a/drivers/tty/vt/vt.c b/drivers/tty/vt/vt.c
index 673177d4e859..e2324d8e4e74 100644
--- a/drivers/tty/vt/vt.c
+++ b/drivers/tty/vt/vt.c
@@ -1896,13 +1896,25 @@ static void set_mode(struct vc_data *vc, int on_off)
clr_kbd(vc, decarm);
break;
case 9:
- vc->vc_report_mouse = on_off ? 1 : 0;
+ vc->vc_report_mouse = on_off * TIOCL_REPORTBTNPRESS;
break;
case 25: /* Cursor on/off */
vc->vc_deccm = on_off;
break;
case 1000:
- vc->vc_report_mouse = on_off ? 2 : 0;
+ vc->vc_report_mouse = on_off * TIOCL_REPORTRELEASE;
+ break;
+ case 1002:
+ vc->vc_report_mouse = on_off * TIOCL_REPORTDRAG;
+ break;
+ case 1003:
+ vc->vc_report_mouse = on_off * TIOCL_REPORTANYMOVE;
+ break;
+ case 1006: /* SRG protocol */
+ vc->vc_protocol_mouse = on_off * 1;
+ break;
+ case 1015: /* URXVT protocol */
+ vc->vc_protocol_mouse = on_off * 2;
break;
}
} else {
@@ -2067,6 +2079,7 @@ static void reset_terminal(struct vc_data *vc, int do_clear)
vc->state.charset = 0;
vc->vc_need_wrap = 0;
vc->vc_report_mouse = 0;
+ vc->vc_protocol_mouse = 0;
vc->vc_utf = default_utf8;
vc->vc_utf_count = 0;

--
2.27.0
\
 
 \ /
  Last update: 2020-06-30 09:11    [W:0.090 / U:0.044 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site