X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fuisupport%2Fgraphicalui.cpp;h=3d3c3b6b9d0d44f2e516723a536a017b33c8ce58;hp=0fb34b04292650c25f2767c06ba512ca9139028d;hb=efee441a243efb88929e1e275d71ee27991bf074;hpb=e50ae7a06fc4e5d3a911c361d30953410deab609 diff --git a/src/uisupport/graphicalui.cpp b/src/uisupport/graphicalui.cpp index 0fb34b04..3d3c3b6b 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-2016 by the Quassel Project * * devel@quassel-irc.org * * * * This contains code from KStatusNotifierItem, part of the KDE libs * @@ -52,6 +52,9 @@ GraphicalUi::GraphicalUi(QObject *parent) : AbstractUi(parent) #ifdef Q_OS_WIN _dwTickCount = 0; #endif +#ifdef Q_OS_MAC + GetFrontProcess(&_procNum); +#endif } @@ -146,6 +149,9 @@ bool GraphicalUi::eventFilter(QObject *obj, QEvent *event) } +// NOTE: Window activation stuff seems to work just fine in Plasma 5 without requiring X11 hacks. +// TODO: Evaluate cleaning all this up once we can get rid of Qt4/KDE4 + // Code taken from KStatusNotifierItem for handling minimize/restore bool GraphicalUi::checkMainWidgetVisibility(bool perform) @@ -296,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 */ } @@ -312,7 +322,11 @@ void GraphicalUi::hideMainWidget() #endif if (instance()->isHidingMainWidgetAllowed()) +#ifdef Q_OS_MAC + ShowHideProcess(&instance()->_procNum, false); +#else mainWidget()->hide(); +#endif }