src/video/x11/SDL_x11events.c


Log

Author Commit Date CI Message
Sam Lantinga f2224e1f 2013-11-03T09:55:27 Fixed bug 1990 - focus/keyboard events not generated correctly for multiple windows Mai Lavelle I've recently tried to create multiple windows and process key events for them, and found that key events weren't being generated for most of the windows. After some investigating I've observed the following effects. All but the most recently created window experience these effects... - a focus lost event is generated immediately after the focus gained event, even tho window still has focus - key events report window id 0 rather than the id of the window which has focus, SDL thinks no window has focus? - giving focus to a non SDL window and then selecting an SDL window causes events to be generated as expected, but only until focus changes again Focus change events are queued and delayed (200 ticks) before they are dispatched. The problem occurs when a focus out and focus in event are received on the same tick. When these delayed events are dispatched they will be sent in the order determined by the window list rather than the order in which they are received. The focus out dispatch is implemented by calling SDL_SetKeyboardFocus(NULL). This will remove focus from any window, regardless of whether it is the one originally targeted by the X11 event. Since SDL_SetKeyboardFocus() will always dispatch a focus lost event as needed, the easiest solution is simply to only call SDL_SetKeyboardFocus(NULL) when SDL_GetKeyboardFocus() matches the target window.
Pierre-Loup A. Griffais e0771482 2013-10-23T13:43:17 Fix regression causing crashes when running without a window manager.
Sam Lantinga f5fa492e 2013-10-20T20:42:55 Added a macro SDL_TICKS_PASSED() to correctly compare two 32-bit tick values. Went through the code and used the macro and fixed a couple places that were using incorrect timestamp comparisons.
Sam Lantinga a25b5192 2013-10-20T09:58:37 Fixed compiling with the new X11 symbol wrapping
Stefanos Apostolopoulos 6a3478c2 2013-10-20T17:23:43 Fix bug 1300 by querying current border size in ConfigureNotify, and adjusting window coordinates accordingly.
Ryan C. Gordon a2bd8970 2013-10-18T01:36:41 Don't supply duplicate X11 symbols inside SDL. Fixes static linking when something else also uses X11.
Sam Lantinga b9567776 2013-09-27T23:35:17 # User Darren Salt <devspam@moreofthesa.me.uk> # Date 1379621782 -3600 # Thu Sep 19 21:16:22 2013 +0100 Work around a false-positive in the X11 mouse wheel code This false positive occurs when one particular button on my mouse is pressed. The kernel which I'm using is patched to cause a release event to be synthesised immediately when the mouse says that this button is pressed because the mouse doesn't signal release until the button is next pressed. (Also documents a false negative, observed with the horizontal scroll wheel on the same mouse.)
Gabriel Jacobo 2490166d 2013-08-21T10:12:16 Fixes for -Wdeclaration-after-statement
Gabriel Jacobo 1e49b1ed 2013-08-21T09:47:10 OCD fixes: Adds a space after /* (glory to regular expressions!)
Gabriel Jacobo 695344d1 2013-08-21T09:43:09 OCD fixes: Adds a space before */
Sam Lantinga 67367be0 2013-08-12T22:00:21 Don't print "unrecognized key" message for an X11 keycode of 0. This can happen with composed characters.
Gabriel Jacobo dad42067 2013-08-12T11:13:50 Fixes #2022, do not resume on Android when surfaceChanged If the app is in landscape mode and the user presses the power button, a pause is followed immediately by a surfaceChanged event because the lock screen is shown in portrait mode. This triggers a "false" resume. So, we just pause and resume following the onWindowFocusChanged events. Also, wait for SDL_APP_WILLENTERBACKGROUND and SDL_APP_DIDENTERBACKGROUND before blocking the event pump.