aboutsummaryrefslogtreecommitdiff
path: root/winsup/cygwin/select.cc
diff options
context:
space:
mode:
authorChristopher Faylor <me@cgf.cx>2002-08-19 04:43:58 +0000
committerChristopher Faylor <me@cgf.cx>2002-08-19 04:43:58 +0000
commitc060edba342decad9f5e29837a04cf82ff61b7a0 (patch)
tree243725d46a0926fd8c6243363cde0e3c173d0bdf /winsup/cygwin/select.cc
parenta94b60cea46803ad239495fe0fe3fbcc13766b81 (diff)
downloadnewlib-c060edba342decad9f5e29837a04cf82ff61b7a0.zip
newlib-c060edba342decad9f5e29837a04cf82ff61b7a0.tar.gz
newlib-c060edba342decad9f5e29837a04cf82ff61b7a0.tar.bz2
* fhandler.h (fhandler_console::send_winch_maybe): New method.
* fhandler_console.cc (set_console_state_for_spawn): Remove if 0'ed code. (fhandler_console::send_winch_maybe): Define new method. (fhandler_console::read): Use send_winch_maybe where appropriate. (fhandler_console::init): Just call all tcsetattr rather than output_tcsetattr. * select.cc (peek_console): Reorganize so that send_winch_maybe is called for everything but keyboard input.
Diffstat (limited to 'winsup/cygwin/select.cc')
-rw-r--r--winsup/cygwin/select.cc22
1 files changed, 13 insertions, 9 deletions
diff --git a/winsup/cygwin/select.cc b/winsup/cygwin/select.cc
index 97674a9..c3c4158 100644
--- a/winsup/cygwin/select.cc
+++ b/winsup/cygwin/select.cc
@@ -661,18 +661,22 @@ peek_console (select_record *me, bool)
break;
else
{
- if (irec.EventType == WINDOW_BUFFER_SIZE_EVENT)
- fh->tc->kill_pgrp (SIGWINCH);
- else if (irec.EventType == MOUSE_EVENT &&
- (irec.Event.MouseEvent.dwEventFlags == 0 ||
- irec.Event.MouseEvent.dwEventFlags == DOUBLE_CLICK))
+ if (irec.EventType == KEY_EVENT)
{
- if (fh->mouse_aware ())
+ if (irec.Event.KeyEvent.bKeyDown
+ && (irec.Event.KeyEvent.uChar.AsciiChar
+ || get_nonascii_key (irec, tmpbuf)))
return me->read_ready = true;
}
- else if (irec.EventType == KEY_EVENT && irec.Event.KeyEvent.bKeyDown == true &&
- (irec.Event.KeyEvent.uChar.AsciiChar || get_nonascii_key (irec, tmpbuf)))
- return me->read_ready = true;
+ else
+ {
+ fh->send_winch_maybe ();
+ if (irec.EventType == MOUSE_EVENT
+ && fh->mouse_aware ()
+ && (irec.Event.MouseEvent.dwEventFlags == 0
+ || irec.Event.MouseEvent.dwEventFlags == DOUBLE_CLICK))
+ return me->read_ready = true;
+ }
/* Read and discard the event */
ReadConsoleInput (h, &irec, 1, &events_read);