summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/CocoaUtils.h10
-rw-r--r--src/CocoaUtils.mm9
-rw-r--r--src/mainwin.cc6
3 files changed, 25 insertions, 0 deletions
diff --git a/src/CocoaUtils.h b/src/CocoaUtils.h
new file mode 100644
index 0000000..8543d84
--- /dev/null
+++ b/src/CocoaUtils.h
@@ -0,0 +1,10 @@
+#ifndef COCOAUTILS_H_
+#define COCOAUTILS_H_
+
+class CocoaUtils
+{
+public:
+ static void endApplication();
+};
+
+#endif
diff --git a/src/CocoaUtils.mm b/src/CocoaUtils.mm
new file mode 100644
index 0000000..2ac8aef
--- /dev/null
+++ b/src/CocoaUtils.mm
@@ -0,0 +1,9 @@
+#include "CocoaUtils.h"
+#import <Foundation/Foundation.h>
+
+void CocoaUtils::endApplication()
+{
+ [[NSNotificationCenter defaultCenter]
+ postNotificationName:@"NSApplicationWillTerminateNotification"
+ object:nil];
+}
diff --git a/src/mainwin.cc b/src/mainwin.cc
index a05a4d4..7db7878 100644
--- a/src/mainwin.cc
+++ b/src/mainwin.cc
@@ -49,6 +49,9 @@
#include "ThrownTogetherRenderer.h"
#include "csgtermnormalizer.h"
#include "AutoUpdater.h"
+#ifdef Q_OS_MAC
+#include "CocoaUtils.h"
+#endif
#include <QMenu>
#include <QTime>
@@ -1843,6 +1846,9 @@ void MainWindow::quit()
QApplication::sendEvent(QApplication::instance(), &ev);
if (ev.isAccepted()) QApplication::instance()->quit();
// FIXME: Cancel any CGAL calculations
+#ifdef Q_OS_MAC
+ CocoaUtils::endApplication();
+#endif
}
void MainWindow::consoleOutput(const std::string &msg, void *userdata)
contact: Jan Huwald // Impressum