From f0f1775fd5aa2cbfa4e2d1316dfb891ecf69435b Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Tue, 18 Aug 2020 10:32:11 +0200 Subject: [PATCH] macOS: Zoom action should "unmaximize" if already maximized Task-number: QTCREATORBUG-24495 Change-Id: I94273f6aa9b425b57e328cfdb052dc171718a97e Reviewed-by: Christian Stenger --- src/plugins/coreplugin/windowsupport.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) 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);