diff --git a/src/terminalDisplay/TerminalDisplay.cpp b/src/terminalDisplay/TerminalDisplay.cpp index a1c578e6..d4c7acab 100644 --- a/src/terminalDisplay/TerminalDisplay.cpp +++ b/src/terminalDisplay/TerminalDisplay.cpp @@ -1814,6 +1814,11 @@ void TerminalDisplay::getCharacterPosition(const QPoint& widgetPoint, int& line, line = qBound(0, (widgetPoint.y() - contentsRect().top() - _contentRect.top()) / _fontHeight, _usedLines - 1); } +void TerminalDisplay::setExpandedMode(bool expand) +{ + _headerBar->setExpandedMode(expand); +} + void TerminalDisplay::updateLineProperties() { if (_screenWindow.isNull()) { diff --git a/src/terminalDisplay/TerminalDisplay.h b/src/terminalDisplay/TerminalDisplay.h index f3ba9448..5a4ce9cc 100644 --- a/src/terminalDisplay/TerminalDisplay.h +++ b/src/terminalDisplay/TerminalDisplay.h @@ -376,6 +376,9 @@ public: // a character which left edge is closest to the point. void getCharacterPosition(const QPoint &widgetPoint, int &line, int &column, bool edge) const; + // toggle the header bar Minimize/Maximize button. + void setExpandedMode(bool expand); + friend class TerminalPainter; friend class TerminalScrollBar; diff --git a/src/widgets/TerminalHeaderBar.cpp b/src/widgets/TerminalHeaderBar.cpp index f3fa051f..14a0f923 100644 --- a/src/widgets/TerminalHeaderBar.cpp +++ b/src/widgets/TerminalHeaderBar.cpp @@ -185,6 +185,13 @@ void TerminalHeaderBar::updateSpecialState(ViewProperties *item) } } +void TerminalHeaderBar::setExpandedMode(bool expand) +{ + if (m_toggleExpandedMode->isChecked() != expand) { + m_toggleExpandedMode->setChecked(expand); + } +} + void TerminalHeaderBar::paintEvent(QPaintEvent *paintEvent) { /* Try to get the widget that's 10px above this one. diff --git a/src/widgets/TerminalHeaderBar.h b/src/widgets/TerminalHeaderBar.h index 6b546b61..3f228664 100644 --- a/src/widgets/TerminalHeaderBar.h +++ b/src/widgets/TerminalHeaderBar.h @@ -44,6 +44,7 @@ public: QSize minimumSizeHint() const override; void applyVisibilitySettings(); QSplitter *getTopLevelSplitter(); + void setExpandedMode(bool expand); public Q_SLOTS: void setFocusIndicatorState(bool focused); diff --git a/src/widgets/ViewSplitter.cpp b/src/widgets/ViewSplitter.cpp index 782a61f4..f1986ab0 100644 --- a/src/widgets/ViewSplitter.cpp +++ b/src/widgets/ViewSplitter.cpp @@ -270,6 +270,7 @@ void ViewSplitter::handleMinimizeMaximize(bool maximize) { auto topLevelSplitter = getToplevelSplitter(); auto currentTerminalDisplay = topLevelSplitter->activeTerminalDisplay(); + currentTerminalDisplay->setExpandedMode(maximize); if (maximize) { for (int i = 0, end = topLevelSplitter->count(); i < end; i++) { auto widgetAt = topLevelSplitter->widget(i);