diff --git a/src/plugins/coreplugin/windowsupport.cpp b/src/plugins/coreplugin/windowsupport.cpp index 4915c58d9a8..6a4b0574f9e 100644 --- a/src/plugins/coreplugin/windowsupport.cpp +++ b/src/plugins/coreplugin/windowsupport.cpp @@ -67,7 +67,16 @@ WindowSupport::WindowSupport(QWidget *window, const Context &context) m_zoomAction = new QAction(this); ActionManager::registerAction(m_zoomAction, Constants::ZOOM_WINDOW, context); - connect(m_zoomAction, &QAction::triggered, m_window, &QWidget::showMaximized); + connect(m_zoomAction, &QAction::triggered, m_window, [this] { + if (m_window->isMaximized()) { + // similar to QWidget::showMaximized + m_window->ensurePolished(); + m_window->setWindowState(m_window->windowState() & ~Qt::WindowMaximized); + m_window->setVisible(true); + } else { + m_window->showMaximized(); + } + }); m_closeAction = new QAction(this); ActionManager::registerAction(m_closeAction, Constants::CLOSE_WINDOW, context);