src/video/x11


Log

Author Commit Date CI Message
Sam Lantinga d44f3922 2014-07-07T10:33:32 Fixed bug 2629 - Mac: crash when calling SDL_DestroyWindow with an active OpenGL context Alex Szpakowski Since this commit https://hg.libsdl.org/SDL/rev/59b543340d63 , calling SDL_DestroyWindow will crash the program if the window has an active OpenGL context. This is because the Cocoa_DestroyWindow code sets the window's driverdata to NULL and then calls [context setWindow:NULL], which tries to access the window's driverdata, resulting in a null pointer dereference. I have attached a patch which fixes the issue by moving the line which sets the driverdata to NULL to after the lines which call functions that use the driverdata pointer.
Sam Lantinga 610225b4 2014-06-28T19:51:26 Fixed null terminating the X11 error string
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()
Ryan C. Gordon 84369567 2014-06-25T16:16:55 Changed SDL_GetAbsoluteMouseState() to SDL_GetGlobalMouseState(). This matches naming conventions in the main repository, between SDL_GetRelativeMouseState() and SDL_WarpMouseGlobal().
Sam Lantinga afe14829 2014-06-25T00:43:10 Fixed bug 2556 - add compilation flag -Wshadow Sylvain here's the full patch for Blit + RLE.
Sam Lantinga b7b6d8ab 2014-06-22T02:30:36 Fixed crash initializing OpenGL ES renderer if OpenGL renderer fails
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.
Ryan C. Gordon b861efde 2014-06-05T00:03:33 Implemented SDL_GetAbsoluteMouseState(). X11 only for now, but this should be doable on every platform, I think.
Sam Lantinga 529bcf62 2014-06-04T10:56:43 Fixed bug 2526, but regressed delivering dead key presses
Sam Lantinga 45ed5ee4 2014-06-04T10:55:26 Added an API function to warp the mouse cursor in global screen space: SDL_WarpMouseGlobal()
J?rgen P. Tjern? c1e11f69 2014-06-03T21:13:00 X11: Provide specific X error when SDL_GL_CreateContext fails. This makes the X error handler used for GL context creation handle *all* errors and provide the user with specific error messages when SDL_GL_CreateContext fails. CR: icculus@icculus.org
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().
Ryan C. Gordon dd5277d6 2014-05-24T21:06:40 Fixed stack overflow in X11_CreateWindow() (thanks, rapha and Brad!). This should be a "long" which on a 64-bit system is likely to be > 32-bits, causing XGetICValues() to write past the end of the variable (and stack). Fixes Bugzilla #2513.
Ryan C. Gordon b7d2c0e9 2014-05-24T01:30:37 Implemented SDL_CaptureMouse().
Sam Lantinga 2dacb60b 2014-04-17T20:06:02 Fixed bug 2086 - valgrind memory not released Sylvain Someone provided a patch for this, recently on the mailing list : ----- Hi, it is possible to skip the bug in libX11 by using the defaults for XNResourceName and XNResourceClass in `XCreateIC' (the table for the "Input Context Values" [1] in libX11-doc shows that a default is provided if it is not set). diff -ur SDL2-2.0.3~/src/video/x11/SDL_x11window.c SDL2-2.0.3/src/video/x11/SDL_x11window.c --- SDL2-2.0.3~/src/video/x11/SDL_x11window.c 2014-04-04 17:09:40.764307181 +0200 +++ SDL2-2.0.3/src/video/x11/SDL_x11window.c 2014-04-04 17:10:23.887765046 +0200 @@ -239,8 +239,7 @@ data->ic = X11_XCreateIC(videodata->im, XNClientWindow, w, XNFocusWindow, w, XNInputStyle, XIMPreeditNothing | XIMStatusNothing, - XNResourceName, videodata->classname, XNResourceClass, - videodata->classname, NULL); + NULL); } #endif data->created = created; Tito Latini [1] http://www.x.org/releases/X11R7.7-RC1/doc/libX11/libX11/libX11.html#Input_Context_Values
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.
Sam Lantinga c3d10376 2014-03-23T09:44:04 Better keyboard detection when some of the keys are remapped, thanks to Lewis Wall
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
Sam Lantinga c2c08f68 2014-03-02T11:10:00 Backed out changeset 9357a2ca3473
Sam Lantinga 2cf453dd 2014-03-02T11:08:05 Make sure we return version 0 if XInput detection fails
Ryan C. Gordon afc74d98 2014-03-02T02:00:40 Better attempt to detect available X11 XInput2 features. Fixes Bugzilla #2306.
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??
J?rgen P. Tjern? 2efa2dc2 2014-01-27T13:43:04 X11: Don't redraw dialog box when mouse moves. This fixes bug #2343. (https://bugzilla.libsdl.org/show_bug.cgi?id=2343) Thanks to Melker Narikka for the patch.
Edward Rudd 5fd5567c 2014-01-08T14:53:08 define a font-size for the "unicode" message box font so the text isn't unreadable on linux systems
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.
Sam Lantinga 2bb344d6 2013-11-27T10:29:27 Don't crash when no WM is present. CR: Sam Lantinga.
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 61959aa6 2013-11-22T13:24:53 OpenGL ES support for Windows
Ryan C. Gordon a2187171 2013-11-20T21:17:26 Query version for X11 XInput2 multitouch separately from base XInput2.
Gabriel Jacobo 9095952a 2013-11-20T12:51:18 Clean up X11 OpenGL ES backend If you really need to switch between OpenGL and GLES context types, just issue a SDL_GL_UnloadLibrary manually.
Gabriel Jacobo 35915d4f 2013-11-14T20:14:02 Clean up the EGL related video backends (X11, Android, RPi)
Gabriel Jacobo 819148a8 2013-11-11T19:17:32 [X11] Fix up compilation when EGL headers are not present.
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 493fadd5 2013-11-08T14:04:35 Fixed spot where SDL was assuming that two displays having the same origin means they're the same display. Changed it to check for the same extents instead. (Sam actually wrote this, I'm just reviewing and checking it in.)
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 298d3d62 2013-10-22T21:54:52 Fixed duplicate const warning
Sam Lantinga 08fa8da7 2013-10-20T21:56:15 Fixed bug 2129 - fix for bug 2121 breaks linking for mingw and throws multiple warnings Andreas Ertelt The problem in question is caused by changeset 7771 (http://hg.libsdl.org/SDL/rev/5486e579872e / https://bugzilla.libsdl.org/show_bug.cgi?id=2121) The redefinition of __inline__ (introduced by the addition of begin_code.h:128's "|| __STRICT_ANSI__") results in mingw's gcc throwing multiple warning: always_inline function might not be inlinable [-Wattributes] as well as a whole bunch of redefinitions of mingw internals which break linking of projects including the SDL2 headers.
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.
Ryan C. Gordon 0e699eb5 2013-10-20T21:18:05 Added SDL_GL_FRAMEBUFFER_SRGB_CAPABLE (thanks, David!). Fixes Bugzilla #1985.
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 b4a00144 2013-10-18T10:56:45 Fixed the XInput2 X11 symbols.
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 14e13e13 2013-10-17T17:38:55 Fixed compiler warning if dynamic X11 loading isn't enabled.
Sam Lantinga 7db31223 2013-10-17T17:37:23 Fixed using the wrong variable when reporting a missing SDL scancode mapping.
Sam Lantinga 6435a82d 2013-10-14T09:12:30 Backed out revision fb5ab0e91c56, the platform specific messagebox functions don't have the right prototype since they're designed to be used standalone.
Gabriel Jacobo 074a1c4c 2013-10-12T16:29:34 Fixes X11 video backend compilation when no GL is available For example, in our Raspberry Pi sysroot.
Sam Lantinga 8b6ad7ff 2013-09-27T23:47:57 Fixed bug 2101 - CWBackPixel causes weird window flickering on window resize aBothe I tried to experiment a bit with SDL2 and OpenGL today and noticed that something caused some weird flickering when resizing my nicely drawn SDL2/OpenGL window: Just after resizing, the background went black and I had to let my OpenGL code redraw the contents.. However, after some hours spent with googling I found out that in OpenGL examples where this CWBackPixel flag was not used when creating X windows, there was no flickering while resizing the window. See http://www.sbin.org/doc/Xlib/chapt_04.html @ "The Window Background" for more info.
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.)
Sam Lantinga 49d64d52 2013-09-13T17:42:38 Fix X11_RestoreWindow() and X11_RaiseWindow() to properly do window activation. X11_RestoreWindow() had a call ordering problem that prevented activation, and X11_RaiseWindow() wasn't attempting activation. Windows and OS X both activate in these cases. CR: saml
pgriffais a9166450 2013-09-10T18:25:13 [SDL] X11+GL: Allow Visual override for GL windows. SDL provides an SDL_VIDEO_X11_VISUALID environment variable that lets you override window visuals, but it wasn't being checked for OpenGL windows. CR: Sam.
Gabriel Jacobo ace1e98a 2013-08-29T15:02:32 Fixes bug #2040, prepare SDL_GL_CONTEXT_EGL for deprecation on v2.1 SDL_GL_CONTEXT_EGL = 1 is now internally treated as profile_mask = SDL_GL_CONTEXT_PROFILE_ES
Sam Lantinga e07d7e64 2013-08-29T08:30:21 Christoph Mallon: Replace strlen(x) == 0 (O(n)) by x[0] == '\0' (O(1)).
Sam Lantinga f79fc33a 2013-08-29T08:29:21 Christoph Mallon: Remove pointless if (x) before SDL_free(x)
Sam Lantinga 3d217ed7 2013-08-21T10:07:48 Fixed crash if the IC isn't set up for some reason (bad X11 locale?)
Gabriel Jacobo 6107705a 2013-08-21T10:34:32 Fix a couple of warnings
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 */
Ryan C. Gordon 24006be2 2013-08-20T20:31:57 Fixed compiler warning.
Gabriel Jacobo 0eeb76d8 2013-08-19T16:29:46 Fixes bug #2037, common EGL code for Android and X11
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.
Sam Lantinga 1df1e696 2013-07-14T11:28:44 Added the platform specific messagebox function to the video function list
Sam Lantinga e14e0ef9 1970-01-01T04:04:21 Fixed crash if the OpenGL library hasn't been loaded yet