Manual Merge change 03234d97de12e08ab0459a985c59e8f629a6d416

ID Author Date Message
03234d97de12e08ab0459a985c59e8f629a6d416 Ray Hayes <rayhayes@rhbe.net>
9/21/2016 10:59:16 AM -07:00 Fix initialization of fields in
Windows/Windows communications.
This commit is contained in:
Manoj Ampalam 2016-09-22 19:42:20 -07:00
parent b28bc1fb79
commit a12970d52a

View File

@ -130,6 +130,7 @@ void SendKeyStroke(HANDLE hInput, int keyStroke, char character)
ir.Event.KeyEvent.wVirtualKeyCode = keyStroke;
ir.Event.KeyEvent.wVirtualScanCode = 0;
ir.Event.KeyEvent.dwControlKeyState = 0;
ir.Event.KeyEvent.uChar.UnicodeChar = 0;
if(character != 0)
ir.Event.KeyEvent.uChar.AsciiChar = character;
@ -674,6 +675,9 @@ DWORD ProcessEvent(void *p) {
DWORD WINAPI ProcessEventQueue(LPVOID p) {
static SHORT lastX = 0;
static SHORT lastY = 0;
while (1) {
while (head) {
@ -728,8 +732,15 @@ DWORD WINAPI ProcessEventQueue(LPVOID p) {
GetConsoleScreenBufferInfoEx(child_out, &consoleInfo);
// Set the cursor to the last known good location according to the live buffer.
SendSetCursor(pipe_out, consoleInfo.dwCursorPosition.X + 1,
consoleInfo.dwCursorPosition.Y + 1);
if (lastX != consoleInfo.dwCursorPosition.X ||
lastY != consoleInfo.dwCursorPosition.Y) {
SendSetCursor(pipe_out, consoleInfo.dwCursorPosition.X + 1,
consoleInfo.dwCursorPosition.Y + 1);
}
lastX = consoleInfo.dwCursorPosition.X;
lastY = consoleInfo.dwCursorPosition.Y;
}
Sleep(100);