diff --git a/src/libs/solutions/terminal/terminalview.cpp b/src/libs/solutions/terminal/terminalview.cpp index 1010e546d97..88b5a34c029 100644 --- a/src/libs/solutions/terminal/terminalview.cpp +++ b/src/libs/solutions/terminal/terminalview.cpp @@ -977,9 +977,10 @@ void TerminalView::applySizeChange() if (d->m_surface->liveSize() == newLiveSize) return; - resizePty(newLiveSize); - d->m_surface->resize(newLiveSize); - flushVTerm(true); + if (resizePty(newLiveSize)) { + d->m_surface->resize(newLiveSize); + flushVTerm(true); + } } void TerminalView::updateScrollBars() diff --git a/src/libs/solutions/terminal/terminalview.h b/src/libs/solutions/terminal/terminalview.h index fcc5994a75e..daddda01e23 100644 --- a/src/libs/solutions/terminal/terminalview.h +++ b/src/libs/solutions/terminal/terminalview.h @@ -123,7 +123,12 @@ public: return noHits; } - virtual void resizePty(QSize newSize) { Q_UNUSED(newSize); } + virtual bool resizePty(QSize newSize) + { + Q_UNUSED(newSize); + return false; + } + virtual void setClipboard(const QString &text) { Q_UNUSED(text); } virtual std::optional toLink(const QString &text) { diff --git a/src/plugins/terminal/terminalwidget.cpp b/src/plugins/terminal/terminalwidget.cpp index 3ca0cfd8d25..05ba69457b8 100644 --- a/src/plugins/terminal/terminalwidget.cpp +++ b/src/plugins/terminal/terminalwidget.cpp @@ -336,10 +336,13 @@ qint64 TerminalWidget::writeToPty(const QByteArray &data) return data.size(); } -void TerminalWidget::resizePty(QSize newSize) +bool TerminalWidget::resizePty(QSize newSize) { - if (m_process && m_process->ptyData() && m_process->isRunning()) - m_process->ptyData()->resize(newSize); + if (!m_process || !m_process->ptyData() || !m_process->isRunning()) + return false; + + m_process->ptyData()->resize(newSize); + return true; } void TerminalWidget::surfaceChanged() diff --git a/src/plugins/terminal/terminalwidget.h b/src/plugins/terminal/terminalwidget.h index 351ae457205..2017f712aef 100644 --- a/src/plugins/terminal/terminalwidget.h +++ b/src/plugins/terminal/terminalwidget.h @@ -77,7 +77,7 @@ protected: void contextMenuRequested(const QPoint &pos) override; qint64 writeToPty(const QByteArray &data) override; - void resizePty(QSize newSize) override; + bool resizePty(QSize newSize) override; void setClipboard(const QString &text) override; std::optional toLink(const QString &text) override;