Mercurial > sdl-ios-xcode
annotate docs/man3/SDL_SetEventFilter.3 @ 4391:07b330419439 SDL-1.2
Fixed bug #849 some more:
Tim Angus 2009-11-26 14:41:04 PST
Fix to the cursor not being responsive when the app doesn't have
SDL_APPINPUTFOCUS
The problems with the directx driver are similar to the ones I introduced in
the windib driver with r4478. Basically if the application did not have focus,
the mouse position is not updated. It's not really that the mouse cursor was
invisible, it's that it is stuck underneath another window where you can't see
it. This behaviour predates my r4478 changes and is the reason I unwittingly
broke the windib driver as I had been replicating the way the directx driver
deals with focus. Prior to r4478 the directx driver could not be used in
windowed mode, so the broken focusing would not have actually been observable.
Anyway, the attached patch makes the directx driver behaves like the windib
driver in terms of focus.
Time for 1.2.15? ;)
I've added an additional change of moving the calls to WIN_GrabInput that are
made on WM_ACTIVATE messages so that they only occur when the state is
SDL_APPINPUTFOCUS. When a fullscreen application is minimised using alt-tab, it
still receives WM_ACTIVATE messages when other applications are selected. If
WIN_GrabInput is called when the SDL application doesn't have input focus, bad
things happen; it shouldn't be being called at all.
I've also added a line to make sure that SDL_APPMOUSEFOCUS state is dropped
when the application is minimised following an alt-tab.
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Fri, 11 Dec 2009 15:24:53 +0000 |
parents | 1238da4a7112 |
children |
rev | line source |
---|---|
181
e5bc29de3f0a
Updated from the SDL Documentation Project
Sam Lantinga <slouken@libsdl.org>
parents:
55
diff
changeset
|
1 .TH "SDL_SetEventFilter" "3" "Tue 11 Sep 2001, 22:59" "SDL" "SDL API Reference" |
0 | 2 .SH "NAME" |
4107
4e3b250c950e
Erik Heckers fixed bug #493
Sam Lantinga <slouken@libsdl.org>
parents:
181
diff
changeset
|
3 SDL_SetEventFilter \- Sets up a filter to process all events before they are posted to the event queue\&. |
0 | 4 .SH "SYNOPSIS" |
5 .PP | |
6 \fB#include "SDL\&.h" | |
7 .sp | |
8 \fBvoid \fBSDL_SetEventFilter\fP\fR(\fBSDL_EventFilter filter\fR); | |
9 .SH "DESCRIPTION" | |
10 .PP | |
11 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: | |
12 .PP | |
13 .nf | |
14 \f(CWtypedef int (*SDL_EventFilter)(const SDL_Event *event);\fR | |
15 .fi | |
16 .PP | |
17 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\&. | |
18 .PP | |
19 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\&. | |
20 .PP | |
21 .RS | |
22 \fBNote: | |
23 .PP | |
24 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\&. | |
25 .RE | |
26 .PP | |
27 .RS | |
28 \fBNote: | |
29 .PP | |
30 \fIBe Careful!\fP The event filter function may run in a different thread so be careful what you do within it\&. | |
31 .RE | |
32 .SH "SEE ALSO" | |
33 .PP | |
34 \fI\fBSDL_Event\fR\fR, \fI\fBSDL_GetEventFilter\fP\fR, \fI\fBSDL_PushEvent\fP\fR | |
4311
1238da4a7112
Debian patch: f230_manpages.diff
Sam Lantinga <slouken@libsdl.org>
parents:
4107
diff
changeset
|
35 .\" created by instant / docbook-to-man, Tue 11 Sep 2001, 22:59 |