Patch 8.2.2913
Problem: MS-Windows conpty supports using mouse events.
Solution: When enabling the mouse enable mouse input and disable quick edit
mode. (Wez Furlong, closes #8280)
Files: src/os_win32.c
*** ../vim-8.2.2912/src/os_win32.c 2021-05-20 11:54:07.225060262 +0200
--- src/os_win32.c 2021-05-30 19:22:12.387777022 +0200
***************
*** 1180,1185 ****
--- 1180,1187 ----
static int g_nMouseClick = -1; // mouse status
static int g_xMouse; // mouse x coordinate
static int g_yMouse; // mouse y coordinate
+ static DWORD g_cmodein = 0; // Original console input mode
+ static DWORD g_cmodeout = 0; // Original console output mode
/*
* Enable or disable mouse input
***************
*** 1200,1210 ****
GetConsoleMode(g_hConIn, &cmodein);
if (g_fMouseActive)
cmodein |= ENABLE_MOUSE_INPUT;
else
cmodein &= ~ENABLE_MOUSE_INPUT;
! SetConsoleMode(g_hConIn, cmodein);
}
--- 1202,1218 ----
GetConsoleMode(g_hConIn, &cmodein);
if (g_fMouseActive)
+ {
cmodein |= ENABLE_MOUSE_INPUT;
+ cmodein &= ~ENABLE_QUICK_EDIT_MODE;
+ }
else
+ {
cmodein &= ~ENABLE_MOUSE_INPUT;
+ cmodein |= g_cmodein & ENABLE_QUICK_EDIT_MODE;
+ }
! SetConsoleMode(g_hConIn, cmodein | ENABLE_EXTENDED_FLAGS);
}
***************
*** 2782,2789 ****
static int g_fWindInitCalled = FALSE;
static int g_fTermcapMode = FALSE;
static CONSOLE_CURSOR_INFO g_cci;
- static DWORD g_cmodein = 0;
- static DWORD g_cmodeout = 0;
/*
* non-GUI version of mch_init().
--- 2790,2795 ----
***************
*** 2924,2930 ****
}
SetConsoleCursorInfo(g_hConOut, &g_cci);
! SetConsoleMode(g_hConIn, g_cmodein);
SetConsoleMode(g_hConOut, g_cmodeout);
# ifdef DYNAMIC_GETTEXT
--- 2930,2936 ----
}
SetConsoleCursorInfo(g_hConOut, &g_cci);
! SetConsoleMode(g_hConIn, g_cmodein | ENABLE_EXTENDED_FLAGS);
SetConsoleMode(g_hConOut, g_cmodeout);
# ifdef DYNAMIC_GETTEXT
***************
*** 3747,3753 ****
--- 3753,3766 ----
cmodein &= ~(ENABLE_LINE_INPUT | ENABLE_PROCESSED_INPUT |
ENABLE_ECHO_INPUT);
if (g_fMouseActive)
+ {
cmodein |= ENABLE_MOUSE_INPUT;
+ cmodein &= ~ENABLE_QUICK_EDIT_MODE;
+ }
+ else
+ {
+ cmodein |= g_cmodein & ENABLE_QUICK_EDIT_MODE;
+ }
cmodeout &= ~(
# ifdef FEAT_TERMGUICOLORS
// Do not turn off the ENABLE_PROCESSED_OUTPUT flag when using
***************
*** 3766,3772 ****
cmodeout |= (ENABLE_PROCESSED_OUTPUT | ENABLE_WRAP_AT_EOL_OUTPUT);
bEnableHandler = FALSE;
}
! SetConsoleMode(g_hConIn, cmodein);
SetConsoleMode(g_hConOut, cmodeout);
SetConsoleCtrlHandler(handler_routine, bEnableHandler);
--- 3779,3785 ----
cmodeout |= (ENABLE_PROCESSED_OUTPUT | ENABLE_WRAP_AT_EOL_OUTPUT);
bEnableHandler = FALSE;
}
! SetConsoleMode(g_hConIn, cmodein | ENABLE_EXTENDED_FLAGS);
SetConsoleMode(g_hConOut, cmodeout);
SetConsoleCtrlHandler(handler_routine, bEnableHandler);
***************
*** 5621,5631 ****
GetConsoleMode(g_hConIn, &cmodein);
if (g_fMouseActive)
cmodein |= ENABLE_MOUSE_INPUT;
else
cmodein &= ~ENABLE_MOUSE_INPUT;
cmodein |= ENABLE_WINDOW_INPUT;
! SetConsoleMode(g_hConIn, cmodein);
redraw_later_clear();
g_fTermcapMode = TRUE;
--- 5634,5650 ----
GetConsoleMode(g_hConIn, &cmodein);
if (g_fMouseActive)
+ {
cmodein |= ENABLE_MOUSE_INPUT;
+ cmodein &= ~ENABLE_QUICK_EDIT_MODE;
+ }
else
+ {
cmodein &= ~ENABLE_MOUSE_INPUT;
+ cmodein |= g_cmodein & ENABLE_QUICK_EDIT_MODE;
+ }
cmodein |= ENABLE_WINDOW_INPUT;
! SetConsoleMode(g_hConIn, cmodein | ENABLE_EXTENDED_FLAGS);
redraw_later_clear();
g_fTermcapMode = TRUE;
***************
*** 5650,5656 ****
GetConsoleMode(g_hConIn, &cmodein);
cmodein &= ~(ENABLE_MOUSE_INPUT | ENABLE_WINDOW_INPUT);
! SetConsoleMode(g_hConIn, cmodein);
# ifdef FEAT_RESTORE_ORIG_SCREEN
cb = exiting ? &g_cbOrig : &g_cbNonTermcap;
--- 5669,5676 ----
GetConsoleMode(g_hConIn, &cmodein);
cmodein &= ~(ENABLE_MOUSE_INPUT | ENABLE_WINDOW_INPUT);
! cmodein |= g_cmodein & ENABLE_QUICK_EDIT_MODE;
! SetConsoleMode(g_hConIn, cmodein | ENABLE_EXTENDED_FLAGS);
# ifdef FEAT_RESTORE_ORIG_SCREEN
cb = exiting ? &g_cbOrig : &g_cbNonTermcap;
*** ../vim-8.2.2912/src/version.c 2021-05-30 18:04:14.714468918 +0200
--- src/version.c 2021-05-30 19:24:43.807340353 +0200
***************
*** 752,753 ****
--- 752,755 ----
{ /* Add new patch number below this line */
+ /**/
+ 2913,
/**/
--
My girlfriend told me I should be more affectionate.
So I got TWO girlfriends.
/// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net \\\
/// \\\
\\\ sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ ///
\\\ 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].
To view this discussion on the web visit
https://groups.google.com/d/msgid/vim_dev/202105301730.14UHUAdh1837120%40masaka.moolenaar.net.