From 38bc43c6ada0ce4ad5393e8772a4b2ac3b5ae668 Mon Sep 17 00:00:00 2001 From: Nova Date: Fri, 29 Aug 2025 21:33:50 +0330 Subject: [PATCH] implement gracefull shutdown for macOS --- src/main.cpp | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index 87126b6..d826455 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -199,10 +199,6 @@ int main(int argc, char* argv[]) { QGuiApplication::tr("QT_LAYOUT_DIRECTION"); loadTranslate(locale); - // Signals - signal(SIGTERM, signal_handler); - signal(SIGINT, signal_handler); - // Check if another instance is running QByteArray hashBytes = QCryptographicHash::hash(wd.absolutePath().toUtf8(), QCryptographicHash::Md5).toBase64(QByteArray::OmitTrailingEquals); hashBytes.replace('+', '0').replace('/', '1'); @@ -237,11 +233,24 @@ int main(int argc, char* argv[]) { QLocalServer::removeServer(serverName); }); +#ifdef Q_OS_LINUX + signal(SIGTERM, signal_handler); + signal(SIGINT, signal_handler); +#endif + #ifdef Q_OS_WIN auto eventFilter = new PowerOffTaskkillFilter(signal_handler); a.installNativeEventFilter(eventFilter); #endif +#ifdef Q_OS_MACOS + QObject::connect(qApp, &QGuiApplication::commitDataRequest, [&](QSessionManager &manager) + { + Q_UNUSED(manager); + signal_handler(0); + }); +#endif + UI_InitMainWindow(); return QApplication::exec(); }