OS X: Restore main window when clicking on the docker icon.

Apparently this worked previously. Maybe a regression in Qt?

Refs #326
This commit is contained in:
Felix Geyer 2015-10-10 17:00:50 +02:00
parent 840642394f
commit 58ed99d562
3 changed files with 21 additions and 0 deletions

View file

@ -24,9 +24,15 @@
Application::Application(int& argc, char** argv)
: QApplication(argc, argv)
, m_mainWindow(Q_NULLPTR)
{
}
void Application::setMainWindow(QWidget* mainWindow)
{
m_mainWindow = mainWindow;
}
bool Application::event(QEvent* event)
{
// Handle Apple QFileOpenEvent from finder (double click on .kdbx file)
@ -34,6 +40,16 @@ bool Application::event(QEvent* event)
Q_EMIT openFile(static_cast<QFileOpenEvent*>(event)->file());
return true;
}
#ifdef Q_OS_MAC
// restore main window when clicking on the docker icon
else if ((event->type() == QEvent::ApplicationActivate) && m_mainWindow) {
m_mainWindow->ensurePolished();
m_mainWindow->setWindowState(m_mainWindow->windowState() & ~Qt::WindowMinimized);
m_mainWindow->show();
m_mainWindow->raise();
m_mainWindow->activateWindow();
}
#endif
return QApplication::event(event);
}