Browse Source

try to fix crash on macOS

Le Tan 6 years ago
parent
commit
1f154c08c5
3 changed files with 7 additions and 5 deletions
  1. 2 1
      src/main.cpp
  2. 3 2
      src/vapplication.cpp
  3. 2 2
      src/vapplication.h

+ 2 - 1
src/main.cpp

@@ -265,6 +265,7 @@ int main(int argc, char *argv[])
     g_palette = &palette;
 
     VMainWindow w(&guard);
+    app.setWindow(&w);
     QString style = palette.fetchQtStyleSheet();
     if (!style.isEmpty()) {
         app.setStyleSheet(style);
@@ -276,8 +277,8 @@ int main(int argc, char *argv[])
 
     w.kickOffStartUpTimer(filePaths);
 
-    app.setWindow(&w);
     int ret = app.exec();
+    app.setWindow(nullptr);
     if (ret == RESTART_EXIT_CODE) {
         // Ask to restart VNote.
         guard.exit();

+ 3 - 2
src/vapplication.cpp

@@ -3,14 +3,15 @@
 VApplication::VApplication(int &argc, char **argv)
     : QApplication(argc, argv)
 {
-    connect(this, &QApplication::applicationStateChanged, this, &VApplication::onApplicationStateChanged);
+    connect(this, &QApplication::applicationStateChanged,
+            this, &VApplication::onApplicationStateChanged);
 }
 
 void VApplication::onApplicationStateChanged(Qt::ApplicationState state)
 {
     Q_UNUSED(state);
 #if defined(Q_OS_MACOS) || defined(Q_OS_MAC)
-    if(state == Qt::ApplicationActive) {
+    if(state == Qt::ApplicationActive && this->window) {
         this->window->show();
         // Need to call raise() in macOS.
         this->window->raise();

+ 2 - 2
src/vapplication.h

@@ -21,7 +21,7 @@ public slots:
     void onApplicationStateChanged(Qt::ApplicationState state);
 
 private:
-    VMainWindow *window;
+    VMainWindow *window = nullptr;
 };
 
-#endif // VAPPLICATION_H
+#endif // VAPPLICATION_H