Mercurial > hg > octave-nkf
changeset 18257:450f50d3eb18 stable
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.
author | John Donoghue <john.donoghue@ieee.org> |
---|---|
date | Tue, 07 Jan 2014 10:57:09 -0500 |
parents | f26d527c1a71 |
children | 36057e2411f8 |
files | libgui/qterminal/libqterminal/win32/QWinTerminalImpl.cpp |
diffstat | 1 files changed, 16 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/libgui/qterminal/libqterminal/win32/QWinTerminalImpl.cpp +++ b/libgui/qterminal/libqterminal/win32/QWinTerminalImpl.cpp @@ -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 {