changeset 15203:5bda3e000c2c

(prev_console_mode): New variable. (unset_kbd): Use prev_console_mode. (reset_kbd): Set prev_console_mode. Call Fset_input_mode.
author Richard M. Stallman <rms@gnu.org>
date Fri, 10 May 1996 20:33:26 +0000
parents 0a9e62f4f10b
children 881e3b9247f8
files src/w32console.c
diffstat 1 files changed, 6 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/w32console.c	Fri May 10 20:31:20 1996 +0000
+++ b/src/w32console.c	Fri May 10 20:33:26 1996 +0000
@@ -80,6 +80,7 @@
 HANDLE	prev_screen, cur_screen;
 UCHAR	char_attr, char_attr_normal, char_attr_reverse;
 HANDLE  keyboard_handle;
+DWORD   prev_console_mode;
 
 
 /* Setting this as the ctrl handler prevents emacs from being killed when
@@ -521,15 +522,18 @@
 void
 unset_kbd (void)
 {
-  SetConsoleMode (keyboard_handle, ENABLE_PROCESSED_INPUT | ENABLE_LINE_INPUT |
-		  ENABLE_ECHO_INPUT | ENABLE_MOUSE_INPUT);
+  SetConsoleMode (keyboard_handle, prev_console_mode);
 }
 
 void
 reset_kbd (void)
 {
   keyboard_handle = GetStdHandle (STD_INPUT_HANDLE);
+  GetConsoleMode (keyboard_handle, &prev_console_mode);
   SetConsoleMode (keyboard_handle, ENABLE_MOUSE_INPUT | ENABLE_WINDOW_INPUT);
+
+  /* Try to use interrupt input; if we can't, then start polling.  */
+  Fset_input_mode (Qt, Qnil, Qt, Qnil);
 }
 
 typedef int (*term_hook) ();