osx: fix annoying focus behaviour (#689)

OS X has a global menu bar and a per app dock icon. Therefore, all
GUI applications launched from a terminal will become focused - even
if they don’t show any windows. Thereby the terminal loses focus.

Since is it very annoying to re-focus the terminal after each proxmark
client launch, this change makes the client unfocusable during launch
and restores the regular behaviour when a window is created.
This commit is contained in:
AntiCat 2018-10-08 07:20:21 +02:00 committed by pwpiwi
commit b742ab8cc3
4 changed files with 33 additions and 1 deletions

View file

@ -26,6 +26,10 @@
#include <string.h>
#include "proxgui.h"
#include <QtGui>
extern "C" {
#include "util_darwin.h"
}
//#include <ctime>
bool g_useOverlays = false;
@ -60,7 +64,12 @@ void ProxGuiQT::_ShowGraphWindow(void)
return;
if (!plotwidget)
{
#if defined(__MACH__) && defined(__APPLE__)
makeFocusable();
#endif
plotwidget = new ProxWidget();
}
plotwidget->show();
}
@ -108,6 +117,11 @@ void ProxGuiQT::MainLoop()
//start proxmark thread after starting event loop
QTimer::singleShot(200, this, SLOT(_StartProxmarkThread()));
#if defined(__MACH__) && defined(__APPLE__)
//Prevent the terminal from loosing focus during launch by making the client unfocusable
makeUnfocusable();
#endif
plotapp->exec();
}