src/video/x11/SDL_x11events.c


Log

Author Commit Date CI Message
Alex Baines f4ddacf4 2014-08-19T23:17:28 Improvements to the IBus related code: + Handle HidePreeditText IBus signal. + Use SDL_GetKeyboardFocus instead of SDL_GetFocusWindow. + Move the X11 IBus SetFocus calls to the X11_DispatchFocus functions. + Simplify the IBus ifdefs when handling X11 KeyEvents. + Remove inotify watch when SDL_IBus_Quit is called.
Sam Lantinga bbab3855 2014-08-18T18:16:45 SDL - fix fullscreen desktop windows not restoring to fullscreen state if focus changes happen due to programtic window changes (and not user alt-tabbing)
Ryan C. Gordon 84cb2320 2014-06-25T17:13:43 Patched to compile with -Werror=declaration-after-statement
Ryan C. Gordon b29740b8 2014-06-25T17:06:12 Merged Ryan's SDL-gui-backend branch. Adds three APIs, and implements them on X11, Cocoa, and Windows: - SDL_CaptureMouse() - SDL_GetGlobalMouseState() - SDL_SetWindowHitTest()
Sam Lantinga b56b37cd 2014-06-21T17:25:59 Fixed warning when building without ibus
Alex Baines 41a39837 2014-06-18T20:11:39 Add IBus IME Support, move DBus code to its own file. (v3.3 squashed)
Sam Lantinga 260549d1 2014-06-15T18:31:30 Fixed bug 2567 - x11: Local dropped files are not URI-decoded Melker Narikka Local files that are dropped onto a window under X11 are not going through a URI decoding step, resulting in the following in my test application: Dropped file /home/meklu/Pictures/Screenshot%20from%202013-10-30%2014:04:50.png Couldn't load /home/meklu/Pictures/Screenshot%20from%202013-10-30%2014:04:50.png Expected result: Dropped file /home/meklu/Pictures/Screenshot from 2013-10-30 14:04:50.png Loaded /home/meklu/Pictures/Screenshot from 2013-10-30 14:04:50.png successfully I've attached a patch that fixes the issue by doing URI decoding in-place on the file string buffer.
Ionut Leonte 2d38a71a 2014-06-05T00:45:16 Added SDL_HITTEST_RESIZE_*, and implemented for X11.
Sam Lantinga 529bcf62 2014-06-04T10:56:43 Fixed bug 2526, but regressed delivering dead key presses
Ryan C. Gordon 98c03f39 2014-05-28T01:22:47 Changed drag area API to a hit-testing API. There were several good arguments for this: it's how Windows works with WM_NCHITTEST, SDL doesn't need to manage a list of rects, it allows more control over the regions (how do you use rects to cleanly surround a circular button?), the callback can be more optimized than a iterating a list of rects, and you don't have to send an updated list of rects whenever the window resizes or layout changes.
Ryan C. Gordon 7a4ddcd8 2014-05-27T15:47:25 Don't hardcode an 8 here.
Ryan C. Gordon 20ac4bae 2014-05-27T15:40:03 Some updates for the X11 drag areas work.
Damian Kaczmarek 2744c019 2014-05-27T14:41:16 Initial work on X11 implementation of SDL_SetWindowDragAreas().
Sam Lantinga f6953cf4 2014-04-17T20:02:11 Fixed bug 2502 - Memory leak inside SDL_x11events.c -> X11_DispatchEvent(_THIS) bojko_1000 Code @566: if (data->xwindow) { Atom _net_frame_extents = X11_XInternAtom(display, "_NET_FRAME_EXTENTS", 0); Atom type = None; int format; unsigned long nitems = 0, bytes_after; unsigned char *property; X11_XGetWindowProperty(display, data->xwindow, _net_frame_extents, 0, 16, 0, XA_CARDINAL, &type, &format, &nitems, &bytes_after, &property); if (type != None && nitems == 4) { border_left = ((long*)property)[0]; border_right = ((long*)property)[1]; border_top = ((long*)property)[2]; border_bottom = ((long*)property)[3]; } } Code after _the fix_: if (data->xwindow) { Atom _net_frame_extents = X11_XInternAtom(display, "_NET_FRAME_EXTENTS", 0); Atom type = None; int format; unsigned long nitems = 0, bytes_after; unsigned char *property; X11_XGetWindowProperty(display, data->xwindow, _net_frame_extents, 0, 16, 0, XA_CARDINAL, &type, &format, &nitems, &bytes_after, &property); if (type != None && nitems == 4) { border_left = ((long*)property)[0]; border_right = ((long*)property)[1]; border_top = ((long*)property)[2]; border_bottom = ((long*)property)[3]; } X11_XFree(property); } I have found that leak with valgrind.
David Ludwig 3dcb451f 2014-04-09T21:29:19 Added a README file regarding WinRT support To note, this file is currently formatted with CRLF line endings, rather than LF, to allow the file to be viewed with Notepad.
Brandon Schaefer 2298ed17 2014-03-25T15:18:18 Remove two unused variables, causing compiler warnings.
Bastien Nocera 4ca76b3e 2014-03-02T14:59:06 Add support for the freedesktop.org Idle Inhibition specification, as per: http://people.freedesktop.org/~hadess/idle-inhibition-spec/ This makes screensaver inhibition work with GNOME 3 and other desktop environments that implement the specification. https://bugzilla.libsdl.org/show_bug.cgi?id=2169
Gabriel Jacobo abe2ac2c 2014-02-21T08:37:57 Fixes #2326, clean up the X11 backend a bit
Sam Lantinga 58edac3e 2014-02-02T00:53:27 Fixed bug 2374 - Update copyright for 2014... Is it that time already??
Sam Lantinga 7aef2350 2013-12-23T17:37:22 Added a relative mouse mode that uses mouse warping instead of raw input. To enable this, set the environment variable SDL_MOUSE_RELATIVE_MODE_WARP to "1" When mouse relative mode is disabled, put the cursor back where the application expects it to be, instead of where it was when relative mode was enabled.
Gabriel Jacobo f848adff 2013-11-29T10:06:08 Improve Android pause/resume behavior.
Ryan C. Gordon 7e1289af 2013-11-24T23:56:17 Make internal SDL sources include SDL_internal.h instead of SDL_config.h The new header will include SDL_config.h, but allows for other global stuff.
Gabriel Jacobo 15a3bbcb 2013-11-10T20:38:50 [X11] Ignore both NotifyGrab and NotifyUngrab modes in FocusIn/FocusOut events
Sam Lantinga 9228c845 2013-11-10T14:48:44 Fixed issue with dead key press/release events being filtered out.
Sam Lantinga 0d39d090 2013-11-10T14:33:01 Hopefully fixed focus problems when handling a global hotkey on X11. See this thread for details: https://bugzilla.mozilla.org/show_bug.cgi?id=578265
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.
Sam Lantinga 1ad936eb 2013-08-11T19:56:43 Fixed bug 2027 - Full-screen appears to be broken - hang in SDL_DestroyWindow() Rainer Deyke I'm running Linux Mint 15 with the Cinnamon window manager. SDL_DestroyWindow consistently locks up for me when the window if fullscreen.