diff --git a/src/qt/terminal_session.hpp b/src/qt/terminal_session.hpp index 610b928f..13a98f69 100644 --- a/src/qt/terminal_session.hpp +++ b/src/qt/terminal_session.hpp @@ -152,8 +152,13 @@ class SessionModel final : public QObject { if (!bytes.empty()) { changed = true; if (!parser_failed_) { - try { parser_.feed(bytes); } - catch (const std::exception& error) { + try { + parser_.feed(bytes); + // Query replies (a cursor position report today) go back to the + // child through the same bounded input path as keystrokes. + for (const auto& reply : parser_.take_replies()) + send(QByteArray(reply.data(), static_cast(reply.size()))); + } catch (const std::exception& error) { parser_failed_ = true; remember_error(QString::fromUtf8(error.what())); close();