Improve terminal theming, cursor UX, and size negotiation

This commit is contained in:
Keith Smith
2026-03-01 10:14:43 -07:00
parent 20ee48db32
commit c3369b8e48
9 changed files with 141 additions and 24 deletions

View File

@@ -79,6 +79,11 @@ SessionTab::SessionTab(const Profile& profile, QWidget* parent)
m_backend,
&SessionBackend::confirmHostKey,
Qt::QueuedConnection);
connect(this,
&SessionTab::requestTerminalSize,
m_backend,
&SessionBackend::updateTerminalSize,
Qt::QueuedConnection);
connect(m_backend,
&SessionBackend::stateChanged,
@@ -172,6 +177,11 @@ void SessionTab::onCopyErrorClicked()
void SessionTab::onClearTerminalClicked()
{
m_terminalOutput->clear();
if (m_state == SessionState::Connected) {
// Ask the remote shell to repaint a prompt after local clear.
emit requestInput(QStringLiteral("\x0c"));
}
m_terminalOutput->setFocus();
}
void SessionTab::onBackendStateChanged(SessionState state, const QString& message)
@@ -339,6 +349,10 @@ void SessionTab::setupUi()
&TerminalView::inputGenerated,
this,
[this](const QString& input) { emit requestInput(input); });
connect(m_terminalOutput,
&TerminalView::terminalSizeChanged,
this,
[this](int columns, int rows) { emit requestTerminalSize(columns, rows); });
connect(m_themeSelector,
&QComboBox::currentTextChanged,
m_terminalOutput,
@@ -493,9 +507,7 @@ void SessionTab::refreshActionButtons()
m_copyErrorButton->setEnabled(!m_lastError.isEmpty());
m_terminalOutput->setEnabled(isConnected);
if (isConnected) {
m_terminalOutput->setFocus();
}
m_terminalOutput->setFocus();
}
void SessionTab::setPanelExpanded(QToolButton* button,