diff options
Diffstat (limited to 'data/vim/patches/8.1.1265')
-rw-r--r-- | data/vim/patches/8.1.1265 | 291 |
1 files changed, 291 insertions, 0 deletions
diff --git a/data/vim/patches/8.1.1265 b/data/vim/patches/8.1.1265 new file mode 100644 index 000000000..9276311a0 --- /dev/null +++ b/data/vim/patches/8.1.1265 @@ -0,0 +1,291 @@ +To: vim_dev@googlegroups.com +Subject: Patch 8.1.1265 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +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 -- Bram@Moolenaar.net -- 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 /// |