# HG changeset patch # User Jacob Dawid # Date 1315635104 -7200 # Node ID eb03d0b39c18d8d3c513bf7324c17cac55d3de11 # Parent 746c99f44c4b964eb40314b11769c0fbc30dad40 Huge performance bosst by using edit blocks. diff --git a/gui/src/terminal/LinuxTerminalEmulation.cpp b/gui/src/terminal/LinuxTerminalEmulation.cpp --- a/gui/src/terminal/LinuxTerminalEmulation.cpp +++ b/gui/src/terminal/LinuxTerminalEmulation.cpp @@ -104,9 +104,18 @@ { QByteArray data = m_pty->readAll (); + data.replace("\033[K", ""); + data.replace("\033[9", ""); + data.replace("\033[A", ""); + data.replace("\033[B", ""); + data.replace("\033[C", ""); + data.replace("\033[D", ""); + data.replace("\033[1", ""); + data.replace("\033[H", ""); + data.replace("\033[2J", ""); int position; QTextCursor tc = m_terminal->textCursor (); - tc.movePosition (QTextCursor::End); + tc.beginEditBlock (); // Decode data into cursor actions. foreach(QChar character, data) @@ -215,11 +224,14 @@ qDebug ("US"); break; case 127: // Delete (DEL) + qDebug ("DEL"); break; default: tc.insertText (character); break; } } + + tc.endEditBlock (); m_terminal->setTextCursor (tc); }