diff options
author | Bram Moolenaar <Bram@vim.org> | 2014-05-22 18:14:31 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2014-05-22 18:14:31 +0200 |
commit | 90013c6a751e6574fbe49b529a3dbf1eacbef43d (patch) | |
tree | 5d682bca18d37e731684b8496e3286e77e196ec0 /src/os_unix.c | |
parent | b777618d111e51b55ee452d3881d5ef5bc836765 (diff) |
updated for version 7.4.305v7.4.305
Problem: Making 'ttymouse' empty after the xterm version was requested
causes problems. (Elijah Griffin)
Solution: Do not check for DEC mouse sequences when the xterm version was
requested. Also don't request the xterm version when DEC mouse
was enabled.
Diffstat (limited to 'src/os_unix.c')
-rw-r--r-- | src/os_unix.c | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/src/os_unix.c b/src/os_unix.c index 65ce685605..78e9914b16 100644 --- a/src/os_unix.c +++ b/src/os_unix.c @@ -3667,6 +3667,8 @@ mch_setmouse(on) void check_mouse_termcode() { + xterm_conflict_mouse = FALSE; + # ifdef FEAT_MOUSE_XTERM if (use_xterm_mouse() # ifdef FEAT_MOUSE_URXVT @@ -3711,7 +3713,7 @@ check_mouse_termcode() # endif # ifdef FEAT_MOUSE_JSB - /* conflicts with xterm mouse: "\033[" and "\033[M" ??? */ + /* There is no conflict, but it was disabled for xterm before. */ if (!use_xterm_mouse() # ifdef FEAT_GUI && !gui.in_use @@ -3738,32 +3740,40 @@ check_mouse_termcode() # endif # ifdef FEAT_MOUSE_DEC - /* conflicts with xterm mouse: "\033[" and "\033[M" */ - if (!use_xterm_mouse() + /* Conflicts with xterm mouse: "\033[" and "\033[M". + * Also conflicts with the xterm termresponse, skip this if it was + * requested already. */ + if (!use_xterm_mouse() && !did_request_esc_sequence() # ifdef FEAT_GUI && !gui.in_use # endif ) + { set_mouse_termcode(KS_DEC_MOUSE, (char_u *)(term_is_8bit(T_NAME) ? IF_EB("\233", CSI_STR) : IF_EB("\033[", ESC_STR "["))); + xterm_conflict_mouse = TRUE; + } else del_mouse_termcode(KS_DEC_MOUSE); # endif # ifdef FEAT_MOUSE_PTERM /* same as the dec mouse */ - if (!use_xterm_mouse() + if (!use_xterm_mouse() && !did_request_esc_sequence() # ifdef FEAT_GUI && !gui.in_use # endif ) + { set_mouse_termcode(KS_PTERM_MOUSE, (char_u *) IF_EB("\033[", ESC_STR "[")); + xterm_conflict_mouse = TRUE; + } else del_mouse_termcode(KS_PTERM_MOUSE); # endif # ifdef FEAT_MOUSE_URXVT /* same as the dec mouse */ - if (use_xterm_mouse() == 3 + if (use_xterm_mouse() == 3 && !did_request_esc_sequence() # ifdef FEAT_GUI && !gui.in_use # endif @@ -3778,6 +3788,7 @@ check_mouse_termcode() mch_setmouse(FALSE); setmouse(); } + xterm_conflict_mouse = TRUE; } else del_mouse_termcode(KS_URXVT_MOUSE); |