Implement UTF8 mouse mode (SET_EXT_MODE_MOUSE DECSET 1005)

Signed-off-by: Andrew Chin <achin@eminence32.net>
This commit is contained in:
Andrew Chin
2014-09-09 20:48:44 -04:00
parent 94a35958c2
commit 0be97a80bd
4 changed files with 12 additions and 3 deletions
+5
View File
@@ -309,6 +309,11 @@ std::string Display::new_frame( bool initialized, const Framebuffer &last, const
|| (f.ds.xterm_extended_mouse != frame.last_frame.ds.xterm_extended_mouse) ) {
frame.append( f.ds.xterm_extended_mouse ? "\033[?1006h" : "\033[?1006l" );
}
if ( (!initialized)
|| (f.ds.xterm_utf8_mouse != frame.last_frame.ds.xterm_utf8_mouse) ) {
frame.append( f.ds.xterm_utf8_mouse ? "\033[?1005h" : "\033[?1005l" );
}
return frame.str;
}
+1 -1
View File
@@ -63,7 +63,7 @@ DrawState::DrawState( int s_width, int s_height )
next_print_will_wrap( false ), origin_mode( false ), auto_wrap_mode( true ),
insert_mode( false ), cursor_visible( true ), reverse_video( false ),
bracketed_paste( false ), vt100_mouse( false ), xterm_mouse( false ),
xterm_extended_mouse( false ), application_mode_cursor_keys( false )
xterm_extended_mouse( false ), xterm_utf8_mouse( false ), application_mode_cursor_keys( false )
{
reinitialize_tabs( 0 );
}
+4 -2
View File
@@ -192,7 +192,8 @@ namespace Terminal {
bool bracketed_paste;
bool vt100_mouse;
bool xterm_mouse;
bool xterm_extended_mouse;
bool xterm_extended_mouse; // aka SGR
bool xterm_utf8_mouse;
bool application_mode_cursor_keys;
@@ -243,7 +244,8 @@ namespace Terminal {
&& ( cursor_row == x.cursor_row ) && ( cursor_visible == x.cursor_visible ) &&
( reverse_video == x.reverse_video ) && ( renditions == x.renditions ) &&
( bracketed_paste == x.bracketed_paste ) && ( vt100_mouse == x.vt100_mouse ) &&
( xterm_mouse == x.xterm_mouse ) && ( xterm_extended_mouse == x.xterm_extended_mouse );
( xterm_mouse == x.xterm_mouse ) && ( xterm_extended_mouse == x.xterm_extended_mouse ) &&
( xterm_utf8_mouse == x.xterm_utf8_mouse );
}
};
+2
View File
@@ -272,6 +272,8 @@ static bool *get_DEC_mode( int param, Framebuffer *fb ) {
return &(fb->ds.vt100_mouse);
case 1002: /* xterm mouse 2 (inc. button drags) */
return &(fb->ds.xterm_mouse);
case 1005: /* xterm UTF8 mouse */
return &(fb->ds.xterm_utf8_mouse);
case 1006: /* xterm extended mouse */
return &(fb->ds.xterm_extended_mouse);
case 2004: /* bracketed paste */