From 442fb194b920c1b1aab0cdc3239e1863d3b74c4d Mon Sep 17 00:00:00 2001 From: "A. V. Lukyanov" Date: Wed, 3 Aug 2016 21:47:26 +0300 Subject: [PATCH] On OS X restore from both dock and tray (cherry picked from commit b6028cdd595b736e8cffa1bddb6ad60df364301e) --- src/uisupport/graphicalui.cpp | 19 +++++++++---------- src/uisupport/graphicalui.h | 6 ++++++ 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/src/uisupport/graphicalui.cpp b/src/uisupport/graphicalui.cpp index 10f37902..3a4fae98 100644 --- a/src/uisupport/graphicalui.cpp +++ b/src/uisupport/graphicalui.cpp @@ -35,9 +35,6 @@ # include # include #endif -#ifdef Q_OS_MAC -#include -#endif GraphicalUi *GraphicalUi::_instance = 0; QWidget *GraphicalUi::_mainWidget = 0; @@ -55,6 +52,9 @@ GraphicalUi::GraphicalUi(QObject *parent) : AbstractUi(parent) #ifdef Q_OS_WIN _dwTickCount = 0; #endif +#ifdef Q_OS_MAC + GetFrontProcess(&_procNum); +#endif } @@ -302,9 +302,13 @@ void GraphicalUi::activateMainWidget() // this does not actually work on all platforms... and causes more evil than good // mainWidget()->move(mainWidget()->frameGeometry().topLeft()); // avoid placement policies +#ifdef Q_OS_MAC + SetFrontProcess(&instance()->_procNum); +#else mainWidget()->show(); mainWidget()->raise(); mainWidget()->activateWindow(); +#endif #endif /* HAVE_KDE4 */ } @@ -316,18 +320,13 @@ void GraphicalUi::hideMainWidget() KWindowInfo info = KWindowSystem::windowInfo(mainWidget()->winId(), NET::WMDesktop | NET::WMFrameExtents); _onAllDesktops = info.onAllDesktops(); #endif -#ifdef Q_OS_MAC - ProcessSerialNumber pn; -#endif - if (instance()->isHidingMainWidgetAllowed()) { + if (instance()->isHidingMainWidgetAllowed()) #ifdef Q_OS_MAC - GetFrontProcess(&pn); - ShowHideProcess(&pn, false); + ShowHideProcess(&instance()->_procNum, false); #else mainWidget()->hide(); #endif - } } diff --git a/src/uisupport/graphicalui.h b/src/uisupport/graphicalui.h index e35b3cec..75c66cd1 100644 --- a/src/uisupport/graphicalui.h +++ b/src/uisupport/graphicalui.h @@ -31,6 +31,9 @@ class UiStyle; #ifdef Q_OS_WIN # include #endif +#ifdef Q_OS_MAC +#include +#endif class GraphicalUi : public AbstractUi { @@ -119,6 +122,9 @@ private: #ifdef Q_OS_WIN DWORD _dwTickCount; #endif +#ifdef Q_OS_MAC + ProcessSerialNumber _procNum; +#endif }; -- 2.20.1