Fix mouse when key_mouse contains 1006 sequence
This commit is contained in:
parent
2f348c79b7
commit
8265f075b1
12
driver-ti.c
12
driver-ti.c
|
@ -250,26 +250,24 @@ load_terminfo (termo_ti_t *ti, const char *term)
|
||||||
else
|
else
|
||||||
ti->set_mouse_string = strdup (set_mouse_string);
|
ti->set_mouse_string = strdup (set_mouse_string);
|
||||||
|
|
||||||
bool have_mouse = false;
|
// We handle 1006 and 1015 unconditionally in driver-csi.c,
|
||||||
if (!mouse_report_string && strstr (term, "xterm"))
|
// and don't want to have the handling diverted by recent terminfo;
|
||||||
mouse_report_string = "\x1b[M";
|
// let's hardcode the ancient 1000 sequence locally
|
||||||
if (mouse_report_string)
|
if (mouse_report_string)
|
||||||
{
|
{
|
||||||
have_mouse = true;
|
|
||||||
|
|
||||||
trie_node_t *node = malloc (sizeof *node);
|
trie_node_t *node = malloc (sizeof *node);
|
||||||
if (!node)
|
if (!node)
|
||||||
goto fail;
|
goto fail;
|
||||||
|
|
||||||
node->type = TYPE_MOUSE;
|
node->type = TYPE_MOUSE;
|
||||||
if (!insert_seq (ti, mouse_report_string, node))
|
if (!insert_seq (ti, "\x1b[M", node))
|
||||||
{
|
{
|
||||||
free (node);
|
free (node);
|
||||||
goto fail;
|
goto fail;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!have_mouse)
|
if (!mouse_report_string && strstr (term, "xterm") != term)
|
||||||
ti->tk->guessed_mouse_proto = TERMO_MOUSE_PROTO_NONE;
|
ti->tk->guessed_mouse_proto = TERMO_MOUSE_PROTO_NONE;
|
||||||
else if (strstr (term, "rxvt") == term)
|
else if (strstr (term, "rxvt") == term)
|
||||||
// urxvt didn't understand the SGR protocol until version 9.25,
|
// urxvt didn't understand the SGR protocol until version 9.25,
|
||||||
|
|
Loading…
Reference in New Issue