X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fuisupport%2Fgraphicalui.cpp;h=fb4a2c7fdbfe7baee1102ce300e1040cb0d8efac;hp=d1e106d10722c335c9363b749d9b7caf2440e7c3;hb=f18d6c40cd704e26734a77b371ae2c4a284bee38;hpb=d82f98b8cf9c7c83f3aab1d7f010ccf8bdd2c003 diff --git a/src/uisupport/graphicalui.cpp b/src/uisupport/graphicalui.cpp index d1e106d1..fb4a2c7f 100644 --- a/src/uisupport/graphicalui.cpp +++ b/src/uisupport/graphicalui.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2015 by the Quassel Project * + * Copyright (C) 2005-2018 by the Quassel Project * * devel@quassel-irc.org * * * * This contains code from KStatusNotifierItem, part of the KDE libs * @@ -36,7 +36,6 @@ # include #endif -GraphicalUi *GraphicalUi::_instance = 0; QWidget *GraphicalUi::_mainWidget = 0; QHash GraphicalUi::_actionCollections; ContextMenuActionProvider *GraphicalUi::_contextMenuActionProvider = 0; @@ -44,6 +43,18 @@ ToolBarActionProvider *GraphicalUi::_toolBarActionProvider = 0; UiStyle *GraphicalUi::_uiStyle = 0; bool GraphicalUi::_onAllDesktops = false; +namespace { + +GraphicalUi *_instance{nullptr}; + +} + + +GraphicalUi *GraphicalUi::instance() { + return _instance; +} + + GraphicalUi::GraphicalUi(QObject *parent) : AbstractUi(parent) { Q_ASSERT(!_instance); @@ -52,6 +63,9 @@ GraphicalUi::GraphicalUi(QObject *parent) : AbstractUi(parent) #ifdef Q_OS_WIN _dwTickCount = 0; #endif +#ifdef Q_OS_MAC + GetFrontProcess(&_procNum); +#endif } @@ -299,9 +313,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 */ } @@ -315,7 +333,11 @@ void GraphicalUi::hideMainWidget() #endif if (instance()->isHidingMainWidgetAllowed()) +#ifdef Q_OS_MAC + ShowHideProcess(&instance()->_procNum, false); +#else mainWidget()->hide(); +#endif }