mirror of
https://github.com/CalcProgrammer1/OpenRGB.git
synced 2026-05-24 06:25:01 -04:00
Signal Handling and Fix for Closing
This commit is contained in:
21
main.cpp
21
main.cpp
@@ -31,6 +31,10 @@ io_connect_t macUSPCIO_driver_connection;
|
||||
#include "macutils.h"
|
||||
#endif
|
||||
|
||||
#ifdef __linux__
|
||||
#include <csignal>
|
||||
#endif
|
||||
|
||||
using namespace std::chrono_literals;
|
||||
|
||||
/******************************************************************************************\
|
||||
@@ -168,6 +172,19 @@ void InstallWinRing0()
|
||||
}
|
||||
#endif
|
||||
|
||||
/******************************************************************************************\
|
||||
* *
|
||||
* Linux signal handler *
|
||||
* *
|
||||
\******************************************************************************************/
|
||||
#ifdef __linux__
|
||||
void sigHandler(int s)
|
||||
{
|
||||
std::signal(s, SIG_DFL);
|
||||
qApp->quit();
|
||||
}
|
||||
#endif
|
||||
|
||||
/******************************************************************************************\
|
||||
* *
|
||||
* main *
|
||||
@@ -288,6 +305,10 @@ int main(int argc, char* argv[])
|
||||
}
|
||||
|
||||
LOG_TRACE("[main] Ready to exec() the dialog");
|
||||
#ifdef __linux__
|
||||
std::signal(SIGINT, sigHandler);
|
||||
std::signal(SIGTERM, sigHandler);
|
||||
#endif
|
||||
exitval = a.exec();
|
||||
}
|
||||
else
|
||||
|
||||
@@ -639,7 +639,7 @@ void OpenRGBDialog::closeEvent(QCloseEvent *event)
|
||||
{
|
||||
ResourceManager::get()->WaitForDeviceDetection();
|
||||
|
||||
if (IsMinimizeOnClose() && !this->isHidden())
|
||||
if (IsMinimizeOnClose() && !this->isHidden() && event->spontaneous())
|
||||
{
|
||||
#ifdef __APPLE__
|
||||
MacUtils::ToggleApplicationDocklessState(false);
|
||||
|
||||
Reference in New Issue
Block a user