21#include "../SDL_internal.h"
34#if defined(HAVE_SIGNAL_H) || defined(HAVE_SIGACTION)
35#define HAVE_SIGNAL_SUPPORT 1
38#ifdef HAVE_SIGNAL_SUPPORT
42#ifdef SDL_BACKGROUNDING_SIGNAL
46#ifdef SDL_FOREGROUNDING_SIGNAL
58 if ((sig == SIGINT) || (sig == SIGTERM)) {
62 #ifdef SDL_BACKGROUNDING_SIGNAL
63 else if (sig == SDL_BACKGROUNDING_SIGNAL) {
64 send_backgrounding_pending =
SDL_TRUE;
68 #ifdef SDL_FOREGROUNDING_SIGNAL
69 else if (sig == SDL_FOREGROUNDING_SIGNAL) {
70 send_foregrounding_pending =
SDL_TRUE;
79 struct sigaction action;
81 sigaction(sig,
NULL, &action);
82#ifdef HAVE_SA_SIGACTION
83 if ( action.sa_handler == SIG_DFL && (
void (*)(
int))action.sa_sigaction == SIG_DFL ) {
85 if ( action.sa_handler == SIG_DFL ) {
88 sigaction(sig, &action,
NULL);
92 if (ohandler != SIG_DFL) {
93 signal(sig, ohandler);
102 struct sigaction action;
103 sigaction(sig,
NULL, &action);
105 action.sa_handler = SIG_DFL;
106 sigaction(sig, &action,
NULL);
109 void (*ohandler) (int) = signal(sig, SIG_DFL);
111 signal(sig, ohandler);
125 #ifdef SDL_BACKGROUNDING_SIGNAL
129 #ifdef SDL_FOREGROUNDING_SIGNAL
143 #ifdef SDL_BACKGROUNDING_SIGNAL
147 #ifdef SDL_FOREGROUNDING_SIGNAL
156#ifdef HAVE_SIGNAL_SUPPORT
167#ifdef HAVE_SIGNAL_SUPPORT
177#ifdef HAVE_SIGNAL_SUPPORT
183 #ifdef SDL_BACKGROUNDING_SIGNAL
184 if (send_backgrounding_pending) {
190 #ifdef SDL_FOREGROUNDING_SIGNAL
191 if (send_foregrounding_pending) {
203#ifdef HAVE_SIGNAL_SUPPORT
#define SDL_assert(condition)
#define SDL_GetHintBoolean
SDL_PRINTF_FORMAT_STRING const char int SDL_PRINTF_FORMAT_STRING const char int SDL_PRINTF_FORMAT_STRING const char int SDL_PRINTF_FORMAT_STRING const char const char SDL_SCANF_FORMAT_STRING const char return SDL_ThreadFunction const char void return Uint32 return Uint32 void
int SDL_SendAppEvent(SDL_EventType eventType)
#define SDL_HINT_NO_SIGNAL_HANDLERS
Tell SDL not to catch the SIGINT or SIGTERM signals.
static SDL_bool disable_signals
static void SDL_EventSignal_Init(const int sig)
static SDL_bool send_quit_pending
static void SDL_EventSignal_Quit(const int sig)
static void SDL_QuitQuit_Internal(void)
void SDL_SendPendingSignalEvents(void)
static int SDL_QuitInit_Internal(void)
static void SDL_HandleSIG(int sig)
void SDL_OnApplicationDidBecomeActive(void)
void SDL_OnApplicationWillResignActive(void)