diff --git a/app/tabbar.h b/app/tabbar.h --- a/app/tabbar.h +++ b/app/tabbar.h @@ -108,6 +108,8 @@ void interactiveRenameDone(); + void returnFocusToTerminal(); + private: QString standardTabTitle(); diff --git a/app/tabbar.cpp b/app/tabbar.cpp --- a/app/tabbar.cpp +++ b/app/tabbar.cpp @@ -99,7 +99,9 @@ m_lineEdit->hide(); connect(m_lineEdit, SIGNAL(editingFinished()), m_lineEdit, SLOT(hide())); + connect(m_lineEdit, SIGNAL(editingFinished()), this, SLOT(returnFocusToTerminal())); connect(m_lineEdit, SIGNAL(returnPressed()), this, SLOT(interactiveRenameDone())); + connect(m_lineEdit, SIGNAL(returnPressed()), this, SLOT(returnFocusToTerminal())); setAcceptDrops(true); } @@ -567,7 +569,10 @@ void TabBar::keyPressEvent(QKeyEvent* event) { if (event->key() == Qt::Key_Escape && m_lineEdit->isVisible()) + { m_lineEdit->hide(); + returnFocusToTerminal(); + } QWidget::keyPressEvent(event); } @@ -810,6 +815,11 @@ setTabTitleInteractive(sessionId, m_lineEdit->text().trimmed()); } +void TabBar::returnFocusToTerminal() +{ + emit tabSelected(m_selectedSessionId); +} + void TabBar::selectTab(int sessionId) { if (!m_tabs.contains(sessionId)) return;