# HG changeset patch # User John Donoghue # Date 1389110229 18000 # Node ID 450f50d3eb18040376ac8f8d5b33e990f92e0173 # Parent f26d527c1a71c8a24bc4b2b9523a96858d1196a6 GUI: Use WriteConsoleInput for sending terminal newline (Bug #41123) * libgui/qterminal/libqterminal/win32/QWinTerminalImpl.cpp (QConsolePrivate::sendConsoleText): Use WriteConsoleInput instead of SendMessage to send newline to console. diff -r f26d527c1a71 -r 450f50d3eb18 libgui/qterminal/libqterminal/win32/QWinTerminalImpl.cpp --- a/libgui/qterminal/libqterminal/win32/QWinTerminalImpl.cpp Tue Jan 07 16:01:44 2014 -0500 +++ b/libgui/qterminal/libqterminal/win32/QWinTerminalImpl.cpp Tue Jan 07 10:57:09 2014 -0500 @@ -1184,14 +1184,22 @@ { if (c == L'\r' && i < (len - 1) && s.at (i+1) == L'\n') i++; - if (nEvents) - { - WriteConsoleInput (hStdIn, events, nEvents, &written); - nEvents = 0; - ZeroMemory (events, sizeof (events)); - } - PostMessage (m_consoleWindow, WM_KEYDOWN, VK_RETURN, 0x001C0001); - PostMessage (m_consoleWindow, WM_KEYDOWN, VK_RETURN, 0xC01C0001); + + // add new line + events[nEvents].EventType = KEY_EVENT; + events[nEvents].Event.KeyEvent.bKeyDown = TRUE; + events[nEvents].Event.KeyEvent.wRepeatCount = 1; + events[nEvents].Event.KeyEvent.wVirtualKeyCode = + VK_RETURN; + events[nEvents].Event.KeyEvent.wVirtualScanCode = 0; + events[nEvents].Event.KeyEvent.uChar.UnicodeChar = c.unicode (); + events[nEvents].Event.KeyEvent.dwControlKeyState = 0; + nEvents++; + + WriteConsoleInput (hStdIn, events, nEvents, &written); + nEvents = 0; + ZeroMemory (events, sizeof (events)); + } else {