termiointernals: report alt on mouse move + tests
This commit is contained in:
parent
7631c91afe
commit
93a25e6123
|
@ -1744,11 +1744,12 @@ _rep_mouse_up(Termio *sd, Evas_Event_Mouse_Up *ev,
|
|||
}
|
||||
|
||||
static Eina_Bool
|
||||
_rep_mouse_move(Termio *sd, int cx, int cy)
|
||||
_rep_mouse_move(Termio *sd, int cx, int cy, Termio_Modifiers modifiers)
|
||||
{
|
||||
char buf[64];
|
||||
Eina_Bool ret = EINA_FALSE;
|
||||
int btn;
|
||||
int meta = 0;
|
||||
|
||||
if ((sd->pty->mouse_mode == MOUSE_OFF) ||
|
||||
(sd->pty->mouse_mode == MOUSE_X10) ||
|
||||
|
@ -1757,6 +1758,8 @@ _rep_mouse_move(Termio *sd, int cx, int cy)
|
|||
|
||||
if ((!sd->mouse.button) && (sd->pty->mouse_mode == MOUSE_NORMAL_BTN_MOVE))
|
||||
return EINA_FALSE;
|
||||
if (modifiers.alt)
|
||||
meta = 8;
|
||||
|
||||
btn = sd->mouse.button - 1;
|
||||
|
||||
|
@ -1767,7 +1770,7 @@ _rep_mouse_move(Termio *sd, int cx, int cy)
|
|||
buf[0] = 0x1b;
|
||||
buf[1] = '[';
|
||||
buf[2] = 'M';
|
||||
buf[3] = btn + 32 + ' ';
|
||||
buf[3] = btn + meta + 32 + ' ';
|
||||
buf[4] = (cx > 94) ? ' ' : cx + 1 + ' ';
|
||||
buf[5] = (cy > 94) ? ' ' : cy + 1 + ' ';
|
||||
buf[6] = 0;
|
||||
|
@ -1782,7 +1785,7 @@ _rep_mouse_move(Termio *sd, int cx, int cy)
|
|||
buf[0] = 0x1b;
|
||||
buf[1] = '[';
|
||||
buf[2] = 'M';
|
||||
buf[3] = btn + 32 + ' ';
|
||||
buf[3] = btn + meta + 32 + ' ';
|
||||
i = 4;
|
||||
v = cx + 1 + ' ';
|
||||
if (v <= 127) buf[i++] = v;
|
||||
|
@ -1806,7 +1809,7 @@ _rep_mouse_move(Termio *sd, int cx, int cy)
|
|||
case MOUSE_EXT_SGR: // ESC.[.<.NUM.;.NUM.;.NUM.M
|
||||
{
|
||||
snprintf(buf, sizeof(buf), "%c[<%i;%i;%iM", 0x1b,
|
||||
btn + 32, cx + 1, cy + 1);
|
||||
btn + meta + 32, cx + 1, cy + 1);
|
||||
termpty_write(sd->pty, buf, strlen(buf));
|
||||
ret = EINA_TRUE;
|
||||
}
|
||||
|
@ -1814,7 +1817,7 @@ _rep_mouse_move(Termio *sd, int cx, int cy)
|
|||
case MOUSE_EXT_URXVT: // ESC.[.NUM.;.NUM.;.NUM.M
|
||||
{
|
||||
snprintf(buf, sizeof(buf), "%c[%i;%i;%iM", 0x1b,
|
||||
btn + 32 + ' ',
|
||||
btn + meta + 32 + ' ',
|
||||
cx + 1, cy + 1);
|
||||
termpty_write(sd->pty, buf, strlen(buf));
|
||||
ret = EINA_TRUE;
|
||||
|
@ -2028,7 +2031,7 @@ termio_internal_mouse_move(Termio *sd,
|
|||
sd->mouse.cy = cy;
|
||||
if (!modifiers.shift && !modifiers.ctrl)
|
||||
{
|
||||
if (_rep_mouse_move(sd, cx, cy))
|
||||
if (_rep_mouse_move(sd, cx, cy, modifiers))
|
||||
{
|
||||
/* Mouse move already been taken care of */
|
||||
return;
|
||||
|
|
|
@ -104,11 +104,11 @@ selection_invalidation_line_removed.sh 8d689636f976b044dfbf6af6b3333093
|
|||
resize_window_no_content_change.sh 28d45fe49c686c8c98631cce8e4bd368
|
||||
mouse_reporting_mode_x10_ext_none.sh b56ef7d0e2cc236e31ff2e149528833b
|
||||
mouse_reporting_mode_normal_ext_none.sh f93ea2ac6acb8d36cac9e37e06ed9bd8
|
||||
mouse_reporting_mode_mouse_move_pressed_ext_none.sh f733c0b36c0086719e85ec1d998d0762
|
||||
mouse_reporting_mode_all_ext_none.sh b48a73bf07c6438510f709e87faa4dc0
|
||||
mouse_reporting_mode_mouse_move_pressed_ext_none.sh 517ee04a059dfd9400fdcd633a7a5d5c
|
||||
mouse_reporting_mode_all_ext_none.sh 3f0e5432b989c044687627e1ee134571
|
||||
mouse_reporting_mode_x10_ext_utf8.sh c503d835cde7b0d147ae7a61e1b44fd1
|
||||
mouse_reporting_mode_normal_ext_utf8.sh 2f615fa516bbf2ad4233f522a0f007d9
|
||||
mouse_reporting_mode_mouse_move_pressed_ext_utf8.sh 5b463446271bcbf765f4620e74a11806
|
||||
mouse_reporting_mode_all_ext_utf8.sh 006c317e1efd1c5abd0e4ee1830470f5
|
||||
mouse_reporting_mode_mouse_move_pressed_ext_utf8.sh dd7265c391b830e5efa2496bfd7f6d36
|
||||
mouse_reporting_mode_all_ext_utf8.sh 21fd1fe0a68f7695d0a6b3c519131808
|
||||
mouse_reporting_mode_x10_ext_sgr.sh 82517b141a920771f5324bb1648c4cd2
|
||||
mouse_reporting_mode_normal_ext_sgr.sh 6599bde2c0edfc462c85762fd9d7ce34
|
||||
|
|
Loading…
Reference in New Issue