aboutsummaryrefslogtreecommitdiff
path: root/launcher
diff options
context:
space:
mode:
Diffstat (limited to 'launcher')
-rw-r--r--launcher/Application.cpp24
-rw-r--r--launcher/Application.h7
2 files changed, 31 insertions, 0 deletions
diff --git a/launcher/Application.cpp b/launcher/Application.cpp
index ba4096b6..bcfdc460 100644
--- a/launcher/Application.cpp
+++ b/launcher/Application.cpp
@@ -871,6 +871,10 @@ Application::Application(int &argc, char **argv) : QApplication(argc, argv)
m_mcedit.reset(new MCEditTool(m_settings));
}
+ connect(this, &Application::clickedOnDock, [this]() {
+ this->showMainWindow();
+ });
+
connect(this, &Application::aboutToQuit, [this](){
if(m_instances)
{
@@ -954,6 +958,22 @@ bool Application::createSetupWizard()
return false;
}
+bool Application::event(QEvent* event) {
+#ifdef Q_OS_MACOS
+ if (event->type() == QEvent::ApplicationStateChange) {
+ auto ev = static_cast<QApplicationStateChangeEvent*>(event);
+
+ if (m_prevAppState == Qt::ApplicationActive
+ && ev->applicationState() == Qt::ApplicationActive) {
+ qDebug() << "Clicked on dock!";
+ emit clickedOnDock();
+ }
+ m_prevAppState = ev->applicationState();
+ }
+#endif
+ return QApplication::event(event);
+}
+
void Application::setupWizardFinished(int status)
{
qDebug() << "Wizard result =" << status;
@@ -1284,6 +1304,10 @@ void Application::subRunningInstance()
bool Application::shouldExitNow() const
{
+#ifdef Q_OS_MACOS
+ return false;
+#endif
+
return m_runningInstances == 0 && m_openWindows == 0;
}
diff --git a/launcher/Application.h b/launcher/Application.h
index 3129b4fb..d6a5473d 100644
--- a/launcher/Application.h
+++ b/launcher/Application.h
@@ -94,6 +94,8 @@ public:
Application(int &argc, char **argv);
virtual ~Application();
+ bool event(QEvent* event) override;
+
std::shared_ptr<SettingsObject> settings() const {
return m_settings;
}
@@ -180,6 +182,7 @@ signals:
void updateAllowedChanged(bool status);
void globalSettingsAboutToOpen();
void globalSettingsClosed();
+ void clickedOnDock();
public slots:
bool launch(
@@ -238,6 +241,10 @@ private:
QString m_rootPath;
Status m_status = Application::StartingUp;
+#ifdef Q_OS_MACOS
+ Qt::ApplicationState m_prevAppState = Qt::ApplicationInactive;
+#endif
+
#if defined Q_OS_WIN32
// used on Windows to attach the standard IO streams
bool consoleAttached = false;