mirror of
https://github.com/vim/vim.git
synced 2025-07-26 11:04:33 -04:00
patch 8.2.2963: GUI: mouse move may start Visual mode with a popup visible
Problem: GUI: mouse move may start Visual mode with a popup visible. Solution: Add special code for mouse move. (closes #8318)
This commit is contained in:
parent
dc73b4b75d
commit
445f11d5bc
@ -3071,6 +3071,9 @@ gui_send_mouse_event(
|
||||
*/
|
||||
switch (button)
|
||||
{
|
||||
case MOUSE_MOVE:
|
||||
button_char = KE_MOUSEMOVE_XY;
|
||||
goto button_set;
|
||||
case MOUSE_X1:
|
||||
button_char = KE_X1MOUSE;
|
||||
goto button_set;
|
||||
@ -4925,7 +4928,7 @@ gui_mouse_moved(int x, int y)
|
||||
if (popup_visible)
|
||||
// Generate a mouse-moved event, so that the popup can perhaps be
|
||||
// closed, just like in the terminal.
|
||||
gui_send_mouse_event(MOUSE_DRAG, x, y, FALSE, 0);
|
||||
gui_send_mouse_event(MOUSE_MOVE, x, y, FALSE, 0);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
@ -273,8 +273,9 @@ enum key_extra
|
||||
, KE_FOCUSGAINED = 98 // focus gained
|
||||
, KE_FOCUSLOST = 99 // focus lost
|
||||
, KE_MOUSEMOVE = 100 // mouse moved with no button down
|
||||
, KE_CANCEL = 101 // return from vgetc()
|
||||
, KE_COMMAND = 102 // <Cmd> special key
|
||||
, KE_MOUSEMOVE_XY = 101 // KE_MOUSEMOVE with coordinates
|
||||
, KE_CANCEL = 102 // return from vgetc()
|
||||
, KE_COMMAND = 103 // <Cmd> special key
|
||||
};
|
||||
|
||||
/*
|
||||
|
@ -5588,6 +5588,7 @@ check_termcode(
|
||||
&& key_name[0] == (int)KS_EXTRA
|
||||
&& (key_name[1] == (int)KE_X1MOUSE
|
||||
|| key_name[1] == (int)KE_X2MOUSE
|
||||
|| key_name[1] == (int)KE_MOUSEMOVE_XY
|
||||
|| key_name[1] == (int)KE_MOUSELEFT
|
||||
|| key_name[1] == (int)KE_MOUSERIGHT
|
||||
|| key_name[1] == (int)KE_MOUSEDOWN
|
||||
@ -5601,6 +5602,9 @@ check_termcode(
|
||||
mouse_col = 128 * (bytes[0] - ' ' - 1) + bytes[1] - ' ' - 1;
|
||||
mouse_row = 128 * (bytes[2] - ' ' - 1) + bytes[3] - ' ' - 1;
|
||||
slen += num_bytes;
|
||||
// equal to K_MOUSEMOVE
|
||||
if (key_name[1] == (int)KE_MOUSEMOVE_XY)
|
||||
key_name[1] = (int)KE_MOUSEMOVE;
|
||||
}
|
||||
else
|
||||
#endif
|
||||
|
@ -750,6 +750,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
2963,
|
||||
/**/
|
||||
2962,
|
||||
/**/
|
||||
|
Loading…
x
Reference in New Issue
Block a user