Cygwin: console: fix key input for native console application

- After 24 bit color support patch, arrow keys and function keys
  do not work properly in native console applications if they
  are started in cygwin console. This patch fixes this issue.
This commit is contained in:
Takashi Yano 2019-04-04 01:25:31 +09:00 committed by Corinna Vinschen
parent d3a69d32b1
commit 6a06c6bc8f

View File

@ -455,6 +455,15 @@ sig_exit:
fhandler_console::input_states fhandler_console::input_states
fhandler_console::process_input_message (void) fhandler_console::process_input_message (void)
{ {
if (wincap.has_con_24bit_colors ())
{
DWORD dwMode;
/* Enable xterm compatible mode in input */
GetConsoleMode (get_handle (), &dwMode);
dwMode |= ENABLE_VIRTUAL_TERMINAL_INPUT;
SetConsoleMode (get_handle (), dwMode);
}
char tmp[60]; char tmp[60];
if (!shared_console_info) if (!shared_console_info)
@ -2881,6 +2890,14 @@ fhandler_console::fixup_after_fork_exec (bool execing)
{ {
set_unit (); set_unit ();
setup_io_mutex (); setup_io_mutex ();
if (wincap.has_con_24bit_colors ())
{
DWORD dwMode;
/* Disable xterm compatible mode in input */
GetConsoleMode (get_handle (), &dwMode);
dwMode &= ~ENABLE_VIRTUAL_TERMINAL_INPUT;
SetConsoleMode (get_handle (), dwMode);
}
} }
// #define WINSTA_ACCESS (WINSTA_READATTRIBUTES | STANDARD_RIGHTS_READ | STANDARD_RIGHTS_WRITE | WINSTA_CREATEDESKTOP | WINSTA_EXITWINDOWS) // #define WINSTA_ACCESS (WINSTA_READATTRIBUTES | STANDARD_RIGHTS_READ | STANDARD_RIGHTS_WRITE | WINSTA_CREATEDESKTOP | WINSTA_EXITWINDOWS)