.TH "SDL_SetEventFilter" "3" "Tue 11 Sep 2001, 22:59" "SDL" "SDL API Reference" 
.SH "NAME"
SDL_SetEventFilter\- Sets up a filter to process all events before they are posted to the event queue\&.
.SH "SYNOPSIS"
.PP
\fB#include "SDL\&.h"
.sp
\fBvoid \fBSDL_SetEventFilter\fP\fR(\fBSDL_EventFilter filter\fR);
.SH "DESCRIPTION"
.PP
This function sets up a filter to process all events before they are posted to the event queue\&. This is a very powerful and flexible feature\&. The filter is prototyped as: 
.PP
.nf
\f(CWtypedef int (*SDL_EventFilter)(const SDL_Event *event);\fR
.fi
.PP
 If the filter returns \fB1\fR, then the event will be added to the internal queue\&. If it returns \fB0\fR, then the event will be dropped from the queue\&. This allows selective filtering of dynamically\&.
.PP
There is one caveat when dealing with the \fBSDL_QUITEVENT\fP event type\&. The event filter is only called when the window manager desires to close the application window\&. If the event filter returns 1, then the window will be closed, otherwise the window will remain open if possible\&. If the quit event is generated by an interrupt signal, it will bypass the internal queue and be delivered to the application at the next event poll\&.
.PP
.RS
\fBNote:  
.PP
Events pushed onto the queue with \fI\fBSDL_PushEvent\fP\fR or \fI\fBSDL_PeepEvents\fP\fR do not get passed through the event filter\&.
.RE
.PP
.RS
\fBNote:  
.PP
\fIBe Careful!\fP The event filter function may run in a different thread so be careful what you do within it\&.
.RE
.SH "SEE ALSO"
.PP
\fI\fBSDL_Event\fR\fR, \fI\fBSDL_GetEventFilter\fP\fR, \fI\fBSDL_PushEvent\fP\fR
...\" created by instant / docbook-to-man, Tue 11 Sep 2001, 22:59
