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;