From 858dfa5e53f2068b0b88eb5ebdaef5afc5f0301d Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Wed, 17 Sep 2014 11:24:06 -0400 Subject: these mouse reporting modes are probably also worthwhile to support this doesn't really affect anything, but it'll be useful for runes eventually --- src/parser.c | 12 ++++++++++++ src/parser.l | 12 ++++++++++++ src/screen.c | 20 ++++++++++++++++++++ src/screen.h | 6 ++++++ 4 files changed, 50 insertions(+) diff --git a/src/parser.c b/src/parser.c index 30015f4..fa8d7b8 100644 --- a/src/parser.c +++ b/src/parser.c @@ -2679,6 +2679,12 @@ static void vt100_parser_handle_sm(VT100Screen *vt, char *buf, size_t len) case 1000: vt100_screen_set_mouse_reporting_press_release(vt); break; + case 1002: + vt100_screen_set_mouse_reporting_button_motion(vt); + break; + case 1006: + vt100_screen_set_mouse_reporting_sgr_mode(vt); + break; case 47: case 1049: vt100_screen_use_alternate_buffer(vt); @@ -2732,6 +2738,12 @@ static void vt100_parser_handle_rm(VT100Screen *vt, char *buf, size_t len) case 1000: vt100_screen_set_mouse_reporting_press_release(vt); break; + case 1002: + vt100_screen_set_mouse_reporting_button_motion(vt); + break; + case 1006: + vt100_screen_set_mouse_reporting_sgr_mode(vt); + break; case 47: case 1049: vt100_screen_use_normal_buffer(vt); diff --git a/src/parser.l b/src/parser.l index da403cd..6594358 100644 --- a/src/parser.l +++ b/src/parser.l @@ -511,6 +511,12 @@ static void vt100_parser_handle_sm(VT100Screen *vt, char *buf, size_t len) case 1000: vt100_screen_set_mouse_reporting_press_release(vt); break; + case 1002: + vt100_screen_set_mouse_reporting_button_motion(vt); + break; + case 1006: + vt100_screen_set_mouse_reporting_sgr_mode(vt); + break; case 47: case 1049: vt100_screen_use_alternate_buffer(vt); @@ -564,6 +570,12 @@ static void vt100_parser_handle_rm(VT100Screen *vt, char *buf, size_t len) case 1000: vt100_screen_set_mouse_reporting_press_release(vt); break; + case 1002: + vt100_screen_set_mouse_reporting_button_motion(vt); + break; + case 1006: + vt100_screen_set_mouse_reporting_sgr_mode(vt); + break; case 47: case 1049: vt100_screen_use_normal_buffer(vt); diff --git a/src/screen.c b/src/screen.c index 1fc4edf..5ba16e7 100644 --- a/src/screen.c +++ b/src/screen.c @@ -684,6 +684,26 @@ void vt100_screen_reset_mouse_reporting_press_release(VT100Screen *vt) vt->mouse_reporting_press_release = 0; } +void vt100_screen_set_mouse_reporting_button_motion(VT100Screen *vt) +{ + vt->mouse_reporting_button_motion = 1; +} + +void vt100_screen_reset_mouse_reporting_button_motion(VT100Screen *vt) +{ + vt->mouse_reporting_button_motion = 0; +} + +void vt100_screen_set_mouse_reporting_sgr_mode(VT100Screen *vt) +{ + vt->mouse_reporting_sgr_mode = 1; +} + +void vt100_screen_reset_mouse_reporting_sgr_mode(VT100Screen *vt) +{ + vt->mouse_reporting_sgr_mode = 0; +} + void vt100_screen_set_bracketed_paste(VT100Screen *vt) { vt->bracketed_paste = 1; diff --git a/src/screen.h b/src/screen.h index 16cfc70..01ad280 100644 --- a/src/screen.h +++ b/src/screen.h @@ -102,6 +102,8 @@ struct vt100_screen { unsigned char application_cursor: 1; unsigned char mouse_reporting_press: 1; unsigned char mouse_reporting_press_release: 1; + unsigned char mouse_reporting_button_motion: 1; + unsigned char mouse_reporting_sgr_mode: 1; unsigned char bracketed_paste: 1; unsigned char visual_bell: 1; @@ -175,6 +177,10 @@ void vt100_screen_set_mouse_reporting_press(VT100Screen *vt); void vt100_screen_reset_mouse_reporting_press(VT100Screen *vt); void vt100_screen_set_mouse_reporting_press_release(VT100Screen *vt); void vt100_screen_reset_mouse_reporting_press_release(VT100Screen *vt); +void vt100_screen_set_mouse_reporting_button_motion(VT100Screen *vt); +void vt100_screen_reset_mouse_reporting_button_motion(VT100Screen *vt); +void vt100_screen_set_mouse_reporting_sgr_mode(VT100Screen *vt); +void vt100_screen_reset_mouse_reporting_sgr_mode(VT100Screen *vt); void vt100_screen_set_bracketed_paste(VT100Screen *vt); void vt100_screen_reset_bracketed_paste(VT100Screen *vt); void vt100_screen_set_window_title(VT100Screen *vt, char *buf, size_t len); -- cgit v1.2.3