Patch 8.1.1265
Problem: When GPM mouse support is enabled double clicks in xterm do not
work.
Solution: Use KS_GPM_MOUSE for GPM mouse events.
Files: src/term.c, src/os_unix.c, src/keymap.h
*** ../vim-8.1.1264/src/term.c 2019-05-03 21:10:32.261521512 +0200
--- src/term.c 2019-05-04 16:45:00.727934730 +0200
***************
*** 4396,4404 ****
# endif
#endif
int cpo_koffset;
- #ifdef FEAT_MOUSE_GPM
- extern int gpm_flag; /* gpm library variable */
- #endif
cpo_koffset = (vim_strchr(p_cpo, CPO_KOFFSET) != NULL);
--- 4396,4401 ----
***************
*** 5122,5127 ****
--- 5119,5127 ----
* If it is a mouse click, get the coordinates.
*/
if (key_name[0] == KS_MOUSE
+ # ifdef FEAT_MOUSE_GPM
+ || key_name[0] == KS_GPM_MOUSE
+ # endif
# ifdef FEAT_MOUSE_JSB
|| key_name[0] == KS_JSBTERM_MOUSE
# endif
***************
*** 5144,5150 ****
# if !defined(UNIX) || defined(FEAT_MOUSE_XTERM) || defined(FEAT_GUI) \
|| defined(FEAT_MOUSE_GPM) || defined(FEAT_SYSMOUSE)
! if (key_name[0] == (int)KS_MOUSE)
{
/*
* For xterm we get "<t_mouse>scr", where
--- 5144,5154 ----
# if !defined(UNIX) || defined(FEAT_MOUSE_XTERM) || defined(FEAT_GUI) \
|| defined(FEAT_MOUSE_GPM) || defined(FEAT_SYSMOUSE)
! if (key_name[0] == KS_MOUSE
! # ifdef FEAT_MOUSE_GPM
! || key_name[0] == KS_GPM_MOUSE
! # endif
! )
{
/*
* For xterm we get "<t_mouse>scr", where
***************
*** 5274,5282 ****
modifiers = 0;
}
! if (key_name[0] == (int)KS_MOUSE
# ifdef FEAT_MOUSE_URXVT
! || key_name[0] == (int)KS_URXVT_MOUSE
# endif
|| key_name[0] == KS_SGR_MOUSE
|| key_name[0] == KS_SGR_MOUSE_RELEASE)
--- 5278,5289 ----
modifiers = 0;
}
! if (key_name[0] == KS_MOUSE
! # ifdef FEAT_MOUSE_GPM
! || key_name[0] == KS_GPM_MOUSE
! # endif
# ifdef FEAT_MOUSE_URXVT
! || key_name[0] == KS_URXVT_MOUSE
# endif
|| key_name[0] == KS_SGR_MOUSE
|| key_name[0] == KS_SGR_MOUSE_RELEASE)
***************
*** 5293,5299 ****
&& !gui.in_use
# endif
# ifdef FEAT_MOUSE_GPM
! && gpm_flag == 0
# endif
)
{
--- 5300,5306 ----
&& !gui.in_use
# endif
# ifdef FEAT_MOUSE_GPM
! && key_name[0] != KS_GPM_MOUSE
# endif
)
{
***************
*** 5342,5348 ****
}
# endif /* !UNIX || FEAT_MOUSE_XTERM */
# ifdef FEAT_MOUSE_NET
! if (key_name[0] == (int)KS_NETTERM_MOUSE)
{
int mc, mr;
--- 5349,5355 ----
}
# endif /* !UNIX || FEAT_MOUSE_XTERM */
# ifdef FEAT_MOUSE_NET
! if (key_name[0] == KS_NETTERM_MOUSE)
{
int mc, mr;
***************
*** 5365,5371 ****
}
# endif /* FEAT_MOUSE_NET */
# ifdef FEAT_MOUSE_JSB
! if (key_name[0] == (int)KS_JSBTERM_MOUSE)
{
int mult, val, iter, button, status;
--- 5372,5378 ----
}
# endif /* FEAT_MOUSE_NET */
# ifdef FEAT_MOUSE_JSB
! if (key_name[0] == KS_JSBTERM_MOUSE)
{
int mult, val, iter, button, status;
***************
*** 5489,5495 ****
}
# endif /* FEAT_MOUSE_JSB */
# ifdef FEAT_MOUSE_DEC
! if (key_name[0] == (int)KS_DEC_MOUSE)
{
/* The DEC Locator Input Model
* Netterm delivers the code sequence:
--- 5496,5502 ----
}
# endif /* FEAT_MOUSE_JSB */
# ifdef FEAT_MOUSE_DEC
! if (key_name[0] == KS_DEC_MOUSE)
{
/* The DEC Locator Input Model
* Netterm delivers the code sequence:
***************
*** 5624,5630 ****
}
# endif /* FEAT_MOUSE_DEC */
# ifdef FEAT_MOUSE_PTERM
! if (key_name[0] == (int)KS_PTERM_MOUSE)
{
int button, num_clicks, action;
--- 5631,5637 ----
}
# endif /* FEAT_MOUSE_DEC */
# ifdef FEAT_MOUSE_PTERM
! if (key_name[0] == KS_PTERM_MOUSE)
{
int button, num_clicks, action;
***************
*** 5705,5718 ****
{
# ifdef CHECK_DOUBLE_CLICK
# ifdef FEAT_MOUSE_GPM
- # ifdef FEAT_GUI
/*
! * Only for Unix, when GUI or gpm is not active, we handle
! * multi-clicks here.
*/
! if (gpm_flag == 0 && !gui.in_use)
# else
! if (gpm_flag == 0)
# endif
# else
# ifdef FEAT_GUI
--- 5712,5725 ----
{
# ifdef CHECK_DOUBLE_CLICK
# ifdef FEAT_MOUSE_GPM
/*
! * Only for Unix, when GUI not active, we handle
! * multi-clicks here, but not for GPM mouse events.
*/
! # ifdef FEAT_GUI
! if (key_name[0] != KS_GPM_MOUSE && !gui.in_use)
# else
! if (key_name[0] != KS_GPM_MOUSE)
# endif
# else
# ifdef FEAT_GUI
***************
*** 5800,5806 ****
/* Work out our pseudo mouse event. Note that MOUSE_RELEASE gets
* added, then it's not mouse up/down. */
! key_name[0] = (int)KS_EXTRA;
if (wheel_code != 0
&& (wheel_code & MOUSE_RELEASE) != MOUSE_RELEASE)
{
--- 5807,5813 ----
/* Work out our pseudo mouse event. Note that MOUSE_RELEASE gets
* added, then it's not mouse up/down. */
! key_name[0] = KS_EXTRA;
if (wheel_code != 0
&& (wheel_code & MOUSE_RELEASE) != MOUSE_RELEASE)
{
*** ../vim-8.1.1264/src/os_unix.c 2019-05-03 23:15:34.048180407 +0200
--- src/os_unix.c 2019-05-04 16:33:38.907403683 +0200
***************
*** 3794,3800 ****
&& !gui.in_use
# endif
)
! set_mouse_termcode(KS_MOUSE, (char_u *)IF_EB("\033MG", ESC_STR "MG"));
# endif
# ifdef FEAT_SYSMOUSE
--- 3794,3803 ----
&& !gui.in_use
# endif
)
! set_mouse_termcode(KS_GPM_MOUSE,
! (char_u *)IF_EB("\033MG", ESC_STR "MG"));
! else
! del_mouse_termcode(KS_GPM_MOUSE);
# endif
# ifdef FEAT_SYSMOUSE
***************
*** 7065,7071 ****
Gpm_Close();
}
! /* Reads gpm event and adds special keys to input buf. Returns length of
* generated key sequence.
* This function is styled after gui_send_mouse_event().
*/
--- 7068,7075 ----
Gpm_Close();
}
! /*
! * Reads gpm event and adds special keys to input buf. Returns length of
* generated key sequence.
* This function is styled after gui_send_mouse_event().
*/
*** ../vim-8.1.1264/src/keymap.h 2018-05-01 18:40:08.000000000 +0200
--- src/keymap.h 2019-05-04 16:32:53.487632660 +0200
***************
*** 114,119 ****
--- 114,122 ----
#define KS_SGR_MOUSE 237
#define KS_SGR_MOUSE_RELEASE 236
+ /* Used for the GPM mouse. */
+ #define KS_GPM_MOUSE 235
+
/*
* Filler used after KS_SPECIAL and others
*/
*** ../vim-8.1.1264/src/version.c 2019-05-04 16:55:15.786921815 +0200
--- src/version.c 2019-05-04 16:57:04.670178629 +0200
***************
*** 769,770 ****
--- 769,772 ----
{ /* Add new patch number below this line */
+ /**/
+ 1265,
/**/
--
Veni, Vidi, VW -- I came, I saw, I drove around in a little car.
/// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--
--
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php
---
You received this message because you are subscribed to the Google Groups
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.