* fhandler_console.cc (fhandler_console::need_invisible): Allocate an invisible

window station when ctty != TTY_CONSOLE.
This commit is contained in:
Christopher Faylor 2006-05-19 00:32:36 +00:00
parent dc7798c6b0
commit 1160b21781
2 changed files with 10 additions and 5 deletions

View File

@ -1,3 +1,8 @@
2006-05-18 Christopher Faylor <cgf@timesys.com>
* fhandler_console.cc (fhandler_console::need_invisible): Allocate an
invisible window station when ctty != TTY_CONSOLE.
2006-05-16 Christopher Faylor <cgf@timesys.com> 2006-05-16 Christopher Faylor <cgf@timesys.com>
* cygtls.cc (_cygtls::remove): Don't test for initialization since * cygtls.cc (_cygtls::remove): Don't test for initialization since

View File

@ -1848,7 +1848,7 @@ fhandler_console::need_invisible ()
station or, strangely, characters will not be displayed in any windows station or, strangely, characters will not be displayed in any windows
drawn on the current screen. We only do this if we have changed to drawn on the current screen. We only do this if we have changed to
a new windows station and if we had an existing windows station previously. a new windows station and if we had an existing windows station previously.
We also close the previously opened work station even though AllocConsole We also close the previously opened workstation even though AllocConsole
is now "using" it. This doesn't seem to cause any problems. is now "using" it. This doesn't seem to cause any problems.
Things to watch out for if you make changes in this code: Things to watch out for if you make changes in this code:
@ -1872,18 +1872,18 @@ fhandler_console::need_invisible ()
} }
else else
{ {
if (myself->ctty == -1) if (myself->ctty != TTY_CONSOLE)
{ {
h = CreateWindowStation (NULL, 0, WINSTA_ACCESS, NULL); h = CreateWindowStation (NULL, 0, WINSTA_ACCESS, NULL);
termios_printf ("CreateWindowStation(NULL, %p), %E", h); termios_printf ("%p = CreateWindowStation(NULL), %E", h);
if (h) if (h)
{ {
b = SetProcessWindowStation (h); b = SetProcessWindowStation (h);
termios_printf ("SetProcessWindowStation %d, %E", b); termios_printf ("SetProcessWindowStation %d, %E", b);
} }
} }
b = AllocConsole (); /* will cause flashing if CreateWorkstation b = AllocConsole (); /* will cause flashing if CreateWindowStation
failed */ failed */
debug_printf ("h %p, horig %p, flags %p", h, horig, oi.dwFlags); debug_printf ("h %p, horig %p, flags %p", h, horig, oi.dwFlags);
if (horig && h && h != horig && SetProcessWindowStation (horig)) if (horig && h && h != horig && SetProcessWindowStation (horig))
CloseWindowStation (h); CloseWindowStation (h);