mirror of
https://github.com/vim/vim.git
synced 2025-09-26 04:04:07 -04:00
updated for version 7.3.343
Problem: No mouse support for urxvt. Solution: Implement urxvt mouse support, also for > 252 columns. (Yiding Jia)
This commit is contained in:
@@ -1053,6 +1053,9 @@
|
|||||||
# ifdef FEAT_BIG
|
# ifdef FEAT_BIG
|
||||||
# define FEAT_MOUSE_DEC
|
# define FEAT_MOUSE_DEC
|
||||||
# endif
|
# endif
|
||||||
|
# ifdef FEAT_BIG
|
||||||
|
# define FEAT_MOUSE_URXVT
|
||||||
|
# endif
|
||||||
# if defined(FEAT_NORMAL) && (defined(MSDOS) || defined(WIN3264))
|
# if defined(FEAT_NORMAL) && (defined(MSDOS) || defined(WIN3264))
|
||||||
# define DOS_MOUSE
|
# define DOS_MOUSE
|
||||||
# endif
|
# endif
|
||||||
@@ -1068,13 +1071,23 @@
|
|||||||
#if defined(FEAT_NORMAL) && defined(HAVE_SYSMOUSE)
|
#if defined(FEAT_NORMAL) && defined(HAVE_SYSMOUSE)
|
||||||
# define FEAT_SYSMOUSE
|
# define FEAT_SYSMOUSE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* urxvt is a small variation of mouse_xterm, and shares its code */
|
||||||
|
#if defined(FEAT_MOUSE_URXVT) && !defined(FEAT_MOUSE_XTERM)
|
||||||
|
# define FEAT_MOUSE_XTERM
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Define FEAT_MOUSE when any of the above is defined or FEAT_GUI. */
|
/* Define FEAT_MOUSE when any of the above is defined or FEAT_GUI. */
|
||||||
#if !defined(FEAT_MOUSE_TTY) \
|
#if !defined(FEAT_MOUSE_TTY) \
|
||||||
&& (defined(FEAT_MOUSE_XTERM) \
|
&& (defined(FEAT_MOUSE_XTERM) \
|
||||||
|| defined(FEAT_MOUSE_NET) || defined(FEAT_MOUSE_DEC) \
|
|| defined(FEAT_MOUSE_NET) \
|
||||||
|| defined(DOS_MOUSE) || defined(FEAT_MOUSE_GPM) \
|
|| defined(FEAT_MOUSE_DEC) \
|
||||||
|| defined(FEAT_MOUSE_JSB) || defined(FEAT_MOUSE_PTERM) \
|
|| defined(DOS_MOUSE) \
|
||||||
|| defined(FEAT_SYSMOUSE))
|
|| defined(FEAT_MOUSE_GPM) \
|
||||||
|
|| defined(FEAT_MOUSE_JSB) \
|
||||||
|
|| defined(FEAT_MOUSE_PTERM) \
|
||||||
|
|| defined(FEAT_SYSMOUSE) \
|
||||||
|
|| defined(FEAT_MOUSE_URXVT))
|
||||||
# define FEAT_MOUSE_TTY /* include non-GUI mouse support */
|
# define FEAT_MOUSE_TTY /* include non-GUI mouse support */
|
||||||
#endif
|
#endif
|
||||||
#if !defined(FEAT_MOUSE) && (defined(FEAT_MOUSE_TTY) || defined(FEAT_GUI))
|
#if !defined(FEAT_MOUSE) && (defined(FEAT_MOUSE_TTY) || defined(FEAT_GUI))
|
||||||
|
@@ -92,13 +92,13 @@
|
|||||||
*/
|
*/
|
||||||
#define KS_TEAROFF 244
|
#define KS_TEAROFF 244
|
||||||
|
|
||||||
/* used for JSB term mouse */
|
/* Used for JSB term mouse. */
|
||||||
#define KS_JSBTERM_MOUSE 243
|
#define KS_JSBTERM_MOUSE 243
|
||||||
|
|
||||||
/* used a termcap entry that produces a normal character */
|
/* Used a termcap entry that produces a normal character. */
|
||||||
#define KS_KEY 242
|
#define KS_KEY 242
|
||||||
|
|
||||||
/* Used for the qnx pterm mouse */
|
/* Used for the qnx pterm mouse. */
|
||||||
#define KS_PTERM_MOUSE 241
|
#define KS_PTERM_MOUSE 241
|
||||||
|
|
||||||
/* Used for click in a tab pages label. */
|
/* Used for click in a tab pages label. */
|
||||||
@@ -107,6 +107,9 @@
|
|||||||
/* Used for menu in a tab pages line. */
|
/* Used for menu in a tab pages line. */
|
||||||
#define KS_TABMENU 239
|
#define KS_TABMENU 239
|
||||||
|
|
||||||
|
/* Used for the urxvt mouse. */
|
||||||
|
#define KS_URXVT_MOUSE 238
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Filler used after KS_SPECIAL and others
|
* Filler used after KS_SPECIAL and others
|
||||||
*/
|
*/
|
||||||
|
@@ -819,7 +819,7 @@ EXTERN long p_ttyscroll; /* 'ttyscroll' */
|
|||||||
EXTERN char_u *p_ttym; /* 'ttymouse' */
|
EXTERN char_u *p_ttym; /* 'ttymouse' */
|
||||||
EXTERN unsigned ttym_flags;
|
EXTERN unsigned ttym_flags;
|
||||||
# ifdef IN_OPTION_C
|
# ifdef IN_OPTION_C
|
||||||
static char *(p_ttym_values[]) = {"xterm", "xterm2", "dec", "netterm", "jsbterm", "pterm", NULL};
|
static char *(p_ttym_values[]) = {"xterm", "xterm2", "dec", "netterm", "jsbterm", "pterm", "urxvt", NULL};
|
||||||
# endif
|
# endif
|
||||||
# define TTYM_XTERM 0x01
|
# define TTYM_XTERM 0x01
|
||||||
# define TTYM_XTERM2 0x02
|
# define TTYM_XTERM2 0x02
|
||||||
@@ -827,6 +827,7 @@ static char *(p_ttym_values[]) = {"xterm", "xterm2", "dec", "netterm", "jsbterm"
|
|||||||
# define TTYM_NETTERM 0x08
|
# define TTYM_NETTERM 0x08
|
||||||
# define TTYM_JSBTERM 0x10
|
# define TTYM_JSBTERM 0x10
|
||||||
# define TTYM_PTERM 0x20
|
# define TTYM_PTERM 0x20
|
||||||
|
# define TTYM_URXVT 0x40
|
||||||
#endif
|
#endif
|
||||||
EXTERN char_u *p_udir; /* 'undodir' */
|
EXTERN char_u *p_udir; /* 'undodir' */
|
||||||
EXTERN long p_ul; /* 'undolevels' */
|
EXTERN long p_ul; /* 'undolevels' */
|
||||||
|
@@ -2158,10 +2158,13 @@ use_xterm_like_mouse(name)
|
|||||||
* Return non-zero when using an xterm mouse, according to 'ttymouse'.
|
* Return non-zero when using an xterm mouse, according to 'ttymouse'.
|
||||||
* Return 1 for "xterm".
|
* Return 1 for "xterm".
|
||||||
* Return 2 for "xterm2".
|
* Return 2 for "xterm2".
|
||||||
|
* Return 3 for "urxvt".
|
||||||
*/
|
*/
|
||||||
int
|
int
|
||||||
use_xterm_mouse()
|
use_xterm_mouse()
|
||||||
{
|
{
|
||||||
|
if (ttym_flags == TTYM_URXVT)
|
||||||
|
return 3;
|
||||||
if (ttym_flags == TTYM_XTERM2)
|
if (ttym_flags == TTYM_XTERM2)
|
||||||
return 2;
|
return 2;
|
||||||
if (ttym_flags == TTYM_XTERM)
|
if (ttym_flags == TTYM_XTERM)
|
||||||
@@ -3318,6 +3321,17 @@ mch_setmouse(on)
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
xterm_mouse_vers = use_xterm_mouse();
|
xterm_mouse_vers = use_xterm_mouse();
|
||||||
|
|
||||||
|
# ifdef FEAT_MOUSE_URXVT
|
||||||
|
if (ttym_flags == TTYM_URXVT) {
|
||||||
|
out_str_nf((char_u *)
|
||||||
|
(on
|
||||||
|
? IF_EB("\033[?1015h", ESC_STR "[?1015h")
|
||||||
|
: IF_EB("\033[?1015l", ESC_STR "[?1015l")));
|
||||||
|
ison = on;
|
||||||
|
}
|
||||||
|
# endif
|
||||||
|
|
||||||
if (xterm_mouse_vers > 0)
|
if (xterm_mouse_vers > 0)
|
||||||
{
|
{
|
||||||
if (on) /* enable mouse events, use mouse tracking if available */
|
if (on) /* enable mouse events, use mouse tracking if available */
|
||||||
@@ -3434,6 +3448,9 @@ check_mouse_termcode()
|
|||||||
{
|
{
|
||||||
# ifdef FEAT_MOUSE_XTERM
|
# ifdef FEAT_MOUSE_XTERM
|
||||||
if (use_xterm_mouse()
|
if (use_xterm_mouse()
|
||||||
|
# ifdef FEAT_MOUSE_URXVT
|
||||||
|
&& use_xterm_mouse() != 3
|
||||||
|
# endif
|
||||||
# ifdef FEAT_GUI
|
# ifdef FEAT_GUI
|
||||||
&& !gui.in_use
|
&& !gui.in_use
|
||||||
# endif
|
# endif
|
||||||
@@ -3523,6 +3540,27 @@ check_mouse_termcode()
|
|||||||
else
|
else
|
||||||
del_mouse_termcode(KS_PTERM_MOUSE);
|
del_mouse_termcode(KS_PTERM_MOUSE);
|
||||||
# endif
|
# endif
|
||||||
|
# ifdef FEAT_MOUSE_URXVT
|
||||||
|
/* same as the dec mouse */
|
||||||
|
if (use_xterm_mouse() == 3
|
||||||
|
# ifdef FEAT_GUI
|
||||||
|
&& !gui.in_use
|
||||||
|
# endif
|
||||||
|
)
|
||||||
|
{
|
||||||
|
set_mouse_termcode(KS_URXVT_MOUSE, (char_u *)(term_is_8bit(T_NAME)
|
||||||
|
? IF_EB("\233", CSI_STR)
|
||||||
|
: IF_EB("\033[", ESC_STR "[")));
|
||||||
|
|
||||||
|
if (*p_mouse != NUL)
|
||||||
|
{
|
||||||
|
mch_setmouse(FALSE);
|
||||||
|
setmouse();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
del_mouse_termcode(KS_URXVT_MOUSE);
|
||||||
|
# endif
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@@ -379,6 +379,11 @@ static char *(features[]) =
|
|||||||
# else
|
# else
|
||||||
"-mouse_xterm",
|
"-mouse_xterm",
|
||||||
# endif
|
# endif
|
||||||
|
# ifdef FEAT_MOUSE_URXVT
|
||||||
|
"+mouse_urxvt",
|
||||||
|
# else
|
||||||
|
"-mouse_urxvt",
|
||||||
|
# endif
|
||||||
#endif
|
#endif
|
||||||
#ifdef __QNX__
|
#ifdef __QNX__
|
||||||
# ifdef FEAT_MOUSE_PTERM
|
# ifdef FEAT_MOUSE_PTERM
|
||||||
@@ -709,6 +714,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
343,
|
||||||
/**/
|
/**/
|
||||||
342,
|
342,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user