1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
//! Quit stuff.
//!
//! An [`SDL_QUIT`] event is generated when the user tries to close the
//! application window. If it is ignored or filtered out, the window will remain
//! open. If it is not ignored or filtered, it is queued normally and the window
//! is allowed to close. When the window is closed, screen updates will
//! complete, but have no effect.
//!
//! [`SDL_Init`] installs signal handlers for `SIGINT` (keyboard interrupt) and
//! `SIGTERM` (system termination request), if handlers do not already exist,
//! that generate [`SDL_QUIT`] events as well. There is no way to determine the
//! cause of an [`SDL_QUIT`] event, but setting a signal handler in your
//! application will override the default generation of quit events for that
//! signal.
use crate::events::*;
// makes rustdoc link properly!
#[allow(unused)]
use crate::*;
/// Checks if a quit event is currently in the queue.
#[inline]
#[must_use]
pub unsafe fn SDL_QuitRequested() -> bool {
SDL_PumpEvents();
SDL_PeepEvents(core::ptr::null_mut(), 0, SDL_PEEKEVENT, SDL_QUIT, SDL_QUIT)
> 0
}