> On Aug 13, 10:35 pm, Bram Moolenaar <b...@moolenaar.net> wrote: > > > What system has this mode? My XP system only has Edit/Mark, > > Edit/Paste and thelike. > > > Thank you for your quick answer. > I have Windows XP SP3 (French version). > Clicking the "C:\" icon at the left top corner of a cmd.exe console window > proposes Properties/Options/Edition Options with Quick Edit mode and Insert > mode check boxes. > With Quick Edit mode activated, copy/paste is simply obtained by double-click > + > right mouse twice (comparable to unix behaviour). > > You mention yourself this "Quick Edit mode" in Help/os_win32.txt, line > 112 ! > > I am afraid this option completely captures mouse events. > > Best regards > > Jean Johner
It's possible to programmatically toggle QuickEdit mode. I think it would be quite reasonable for Vim to disable QuickEdit mode so that it has more complete control over the mouse. See if you like the following ptach. It disables QuickEdit when entering termcap mode if the mouse is enabled; and restores QuickEdit to its original value when leaving termcap mode. diff.exe -c3 \TEMP\os_win32.c os_win32.c *** \TEMP\os_win32.c 2010-08-19 12:22:28.580270500 -0700 --- os_win32.c 2010-09-01 14:20:08.999897000 -0700 *************** *** 1962,1967 **** --- 1962,1969 ---- static ConsoleBuffer g_cbNonTermcap = { 0 }; static ConsoleBuffer g_cbTermcap = { 0 }; + static DWORD g_cmiNonTermcap = 0; + #ifdef FEAT_TITLE #ifdef __BORLANDC__ typedef HWND (__stdcall *GETCONSOLEWINDOWPROC)(VOID); *************** *** 3433,3438 **** --- 3435,3441 ---- return; SaveConsoleBuffer(&g_cbNonTermcap); + GetConsoleMode(g_hConIn, &g_cmiNonTermcap); if (g_cbTermcap.IsValid) { *************** *** 3462,3476 **** resettitle(); #endif ! GetConsoleMode(g_hConIn, &cmodein); #ifdef FEAT_MOUSE if (g_fMouseActive) cmodein |= ENABLE_MOUSE_INPUT; else cmodein &= ~ENABLE_MOUSE_INPUT; #endif cmodein |= ENABLE_WINDOW_INPUT; ! SetConsoleMode(g_hConIn, cmodein); redraw_later_clear(); g_fTermcapMode = TRUE; --- 3465,3484 ---- resettitle(); #endif ! cmodein = g_cmiNonTermcap; #ifdef FEAT_MOUSE if (g_fMouseActive) + { cmodein |= ENABLE_MOUSE_INPUT; + cmodein &= ~ENABLE_QUICK_EDIT_MODE; + } else + { cmodein &= ~ENABLE_MOUSE_INPUT; + } #endif cmodein |= ENABLE_WINDOW_INPUT; ! SetConsoleMode(g_hConIn, cmodein | ENABLE_EXTENDED_FLAGS); redraw_later_clear(); g_fTermcapMode = TRUE; *************** *** 3483,3489 **** static void termcap_mode_end(void) { - DWORD cmodein; ConsoleBuffer *cb; COORD coord; DWORD dwDummy; --- 3491,3496 ---- *************** *** 3493,3501 **** SaveConsoleBuffer(&g_cbTermcap); ! 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; --- 3500,3506 ---- SaveConsoleBuffer(&g_cbTermcap); ! SetConsoleMode(g_hConIn, g_cmiNonTermcap | ENABLE_EXTENDED_FLAGS); #ifdef FEAT_RESTORE_ORIG_SCREEN cb = exiting ? &g_cbOrig : &g_cbNonTermcap; -- 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