Mercurial > hg > octave-lyh
changeset 17368:afc3d47f7704
Update windows GUI terminal handling
* libgui/src/octave-gui.cc
(octave_start_gui): set TERM environment variable to 'cygwin' in windows if no term is set.
* libgui/qterminal/libqterminal/win32/QWinTerminalImpl.cpp
(translateKey): deocde delete key before non special keys using moveright \b, use \e[H for home, \e[F for end, decode esc key.
author | John Donoghue <john.donoghue@ieee.org> |
---|---|
date | Fri, 30 Aug 2013 15:43:39 -0400 |
parents | cf5d41cc3695 |
children | 9258de031721 |
files | libgui/qterminal/libqterminal/win32/QWinTerminalImpl.cpp libgui/src/octave-gui.cc |
diffstat | 2 files changed, 15 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/libgui/qterminal/libqterminal/win32/QWinTerminalImpl.cpp +++ b/libgui/qterminal/libqterminal/win32/QWinTerminalImpl.cpp @@ -96,13 +96,15 @@ static QString translateKey (QKeyEvent *ev) { + QString esc = "\x1b"; QString s; - if (!ev->text ().isEmpty ()) + if (ev->key () == Qt::Key_Delete) + s = esc + "[C\b"; + else if (!ev->text ().isEmpty ()) s = ev->text (); else { - QString esc = "\x1b"; switch (ev->key ()) { @@ -123,21 +125,17 @@ break; case Qt::Key_Home: - s = esc + "[1~"; + s = esc + "[H"; break; case Qt::Key_End: - s = esc + "[4~"; + s = esc + "[F"; break; case Qt::Key_Insert: s = esc + "[2~"; break; - case Qt::Key_Delete: - s = esc + "[3~"; - break; - case Qt::Key_PageUp: s = esc + "[5~"; break; @@ -146,6 +144,10 @@ s = esc + "[6~"; break; + case Qt::Key_Escape: + s = esc; + break; + default: break; }
--- a/libgui/src/octave-gui.cc +++ b/libgui/src/octave-gui.cc @@ -123,6 +123,11 @@ if (term.empty ()) octave_env::putenv ("TERM", "xterm"); +#else + std::string term = octave_env::getenv ("TERM"); + + if (term.empty ()) + octave_env::putenv ("TERM", "cygwin"); #endif // create main window, read settings, and show window