src/video/x11


Log

Author Commit Date CI Message
Sam Lantinga cf31ea14 2017-02-11T11:14:48 Fixed bug 3583 - X11 touch device can be permanently lost Volumetric In X11 the SDL error "Unknown touch device" can occur after which the application stops recognizing touch events. For a kiosk-type application this results in a hang as far as the user is concerned. This is reproducible on HP Z220/Z230/Z240 workstations by swapping USB cables for a while and it also occurs with no physical changes, probably due to USB device power management. A workaround is to make SDL re-enumerate the touch devices like it does at startup. A patch is attached.
R?mi Verschelde c3eea703 2017-01-28T10:54:12 Use a stronger X font definition for X11_MessageBox on UTF-8 X11 seemed to be confused by the broad definition, so WEIGHT_NAME, SLANT and SETWIDTH_NAME were defined, thus fixing the font lookup on some systems (tested on Mageia 6 with X11 1.19.1). Fixes bug 3571.
Sam Lantinga 341d1ff9 2017-01-13T11:37:12 Fixed comment
Sam Lantinga a52d48c5 2017-01-10T08:54:33 Fixed bugs 2570, 3145, improved OpenGL ES context support on Windows and X11 Mark Callow The attached patch does the following for the X11 and Windows platforms, the only ones where SDL attempts to use context_create_es_profile: - Adds SDL_HINT_OPENGL_ES_DRIVER by which the application can say to use the OpenGL ES driver & EGL rather than the Open GL driver. (For bug #2570) - Adds code to {WIN,X11}_GL_InitExtensions to determine the maximum OpenGL ES version supported by the OpenGL driver (for bug #3145) - Modifies the test that determines whether to use the OpenGL driver or the real OpenGL ES driver to take into account the hint, the requested and supported ES version and whether ES 1.X is being requested. (For bug #2570 & bug #3145) - Enables the testgles2 test for __WINDOWS__ and __LINUX__ and adds the test to the VisualC projects. With the fix in place I have run testdraw2, testgl and testgles2 without any issues and have run my own apps that use OpenGL, OpenGL ES 3 and OpenGL ES 1.1.
Ryan C. Gordon 13f2e542 2017-01-07T19:55:29 x11: make the X11 target work on macOS with Xquartz.
Ryan C. Gordon 61a3ba30 2017-01-07T17:09:14 Replaced a few single-line "//" comments.
Ryan C. Gordon 9d042052 2017-01-04T09:33:47 x11: deal with xrandr display size in millimeters being zero. Xquartz on macOS reports a zero size, which leads to a division by zero here.
Sam Lantinga 45b774e3 2017-01-01T18:33:28 Updated copyright for 2017
Ryan C. Gordon 7c316366 2016-12-26T23:02:14 x11: Don't loop forever if the X server refuses a pointer grab.
Sam Lantinga e81bf12b 2016-12-12T09:18:42 Fixed edid parsing code for older gcc compilers Ozkan Sezer This adds the name 'ad' to two unnamed unions in edid.h and adjusts edid-parse.c for it. Nameless unions are not supported in ancient gcc, which I happened to use on one of my ancient setups.
Sam Lantinga 7a39681e 2016-12-09T05:04:18 Fixed X11 OpenGL ES build
Sam Lantinga 524bf3c2 2016-12-09T01:47:43 Fixed bug 3513 - SDL_GL_SwapWindow does not return error status Return an error code from SDL_GL_SwapWindow(), like the other SDL APIs.
Sam Lantinga 36156335 2016-11-20T21:34:54 Renaming of guard header names to quiet -Wreserved-id-macro Patch contributed by Sylvain
Sam Lantinga 818d1d3e 2016-11-15T01:30:08 Fixed bug 1646 - Warnings from clang with -Weverything
Sam Lantinga 0d24495b 2016-11-15T01:24:58 Removed unused constants Except for SDL_bmp.c where they are historically interesting and I've left them in.
Sam Lantinga 57d01d7d 2016-11-13T22:57:41 Patch from Sylvain to fix clang warnings
Sam Lantinga 74e1dd4c 2016-11-11T13:14:00 Define _GNU_SOURCE when building SDL
Sam Lantinga d7800312 2016-11-06T09:30:06 Fixed bug 3476 - round() needs _GNU_SOURCE on some old systems Ozkan Sezer On systems with old glibc, such mine with glibc-2.8, the following warning is issued and is fixed easily by defining _GNU_SOURCE: /home/me/SDL2-2.0.5/src/video/x11/SDL_x11modes.c: In function 'CalculateXRandRRefreshRate': /home/me/SDL2-2.0.5/src/video/x11/SDL_x11modes.c:263: warning: implicit declaration of function 'round' /home/me/SDL2-2.0.5/src/video/x11/SDL_x11modes.c:263: warning: incompatible implicit declaration of built-in function 'round'
Sam Lantinga baadd546 2016-11-02T02:56:54 Fixed text input events with UIM Alex Baines I realized overnight that my patch probably broke text input events with UIM, and I confirmed that it does. Can't believe I overlooked that... I've been making stupid mistakes in these patches recently, sorry. Anyway, *this* one seems to fix it properly. Knowing my luck it probably breaks something else.
Sam Lantinga d0c8bf7f 2016-11-01T10:48:59 Patch from Tapani P?lli to fix a memory leak in X11_InitKeyboard Patch uses XkbFreeKeyboard to free the memory returned by XkbGetMap. Earlier implementation called XkbFreeClientMap which frees all the maps but not data->xkb structure itself, XkbFreeKeyboard will free maps and the structure.
Sam Lantinga a1f42765 2016-11-01T10:46:47 Patch from Tapani P?lli to fix a memory leak in X11_GL_CreateContext
Alex Baines 8eb76276 2016-11-01T17:38:05 Skip duplicate key events sent by IMEs like uim.
Alex Baines 5fe98497 2016-10-28T01:28:58 Fix double events / no repeat flag on key events when built withoutibus/fcitx Uses XkbSetDetectableKeyRepeat, and falls back to forcing @im=none if it's not supported.
Sam Lantinga 5af67f49 2016-10-17T21:37:26 Fixed bug 3458 - x11: reset deadkeys in StartTextInput/StopTextInput Eric Wasylishen The patch makes StartTextInput/StopTextInput call Xutf8ResetIC ( https://www.x.org/releases/X11R7.5/doc/man/man3/XmbResetIC.3.html ) on the XIC of all SDL windows. This fixes my use case in Quakespasm (Ubuntu 16.04, system keyboard layout set to German. Type the '^' dead key, which opens Quakespasm's developer console and calls SDL_StartTextInput, then press 'e'. I expect the dead key to be ignored.) Also, here is a patch for sdl2's "checkkeys" for testing this: https://bugzilla-attachments.libsdl.org/attachment.cgi?id=2451
Philipp Wiesemann f6bcfa01 2016-10-12T23:38:31 X11: Fixed compile warning about unused variable.
Sam Lantinga 42f85aa2 2016-10-08T11:30:07 Fixed building and using fcitx IME support on Linux
Sam Lantinga 27d4f099 2016-10-07T23:40:44 Implemented SDL_GetHintBoolean() to make it easier to check boolean hints
Sam Lantinga 808c75d1 2016-10-07T18:57:40 Fixed bug 2824 - Add Fcitx Input Method Support Weitian Leung Just moved ibus direct call to SDL_IME_* related functions, and adds fcitx IME support (uses DBus, too), enable with env: SDL_IM_MODULE=fcitx (ibus still the default one)
Sam Lantinga 8b64a78d 2016-10-07T17:26:25 Fixed bug 2956 - De-reference videodata without NULL check in X11_DispatchEvent(_THIS) function
Alex Baines d9e3972a 2016-10-03T15:31:11 Fix invalid read from poor setlocale usage.
Alex Baines 752931d8 2016-10-03T11:35:34 Improve X11 key handling when XKB isn't available + add xvnc scancodes. Based on a patch by Bill Lash (see bug 3094).
Sam Lantinga d2c8c509 2016-10-01T14:54:05 Fixed build for X11
Sam Lantinga fa0f4176 2016-10-01T14:48:18 Fixed build warnings and errors
Sam Lantinga 359f59ae 2016-10-01T14:22:10 Fixed bug 3130 - Spacebar not responding Alex Baines Make sure group is valid before passing it to XkbKeysymToKeycode.
Sam Lantinga 0250eb3c 2016-10-01T14:16:04 Fixed bug 3134 - CalculateXRandRRefreshRate() returns incorrect refresh rate due to floating point truncation. Michael In SDL_x11modes.c the CalculateXRandRRefreshRate() function performs integer math on values that may return fractional results. This causes a value that would be calculated as 59.99972... to be returned as 59. In Linux the xrandr command returns 60Hz for this particular display mode yet SDL returns 59Hz. I suggest this function be updated to correctly round the result of the calculation instead of truncating the result.
Ryan C. Gordon b2510d9c 2016-09-29T23:01:43 x11: fixed incorrect SDL_GetWindowPosition() after resize (thanks, Jason!). Fixes Bugzilla #3272.
Ryan C. Gordon 4f4c4b62 2016-09-29T22:52:41 Added SDL_SetWindowResizable(). (thanks, Ethan!)
Sam Lantinga 67bdbcca 2016-09-29T16:05:29 Implemented SDL_HINT_MOUSE_FOCUS_CLICKTHROUGH on X11
Philipp Wiesemann d7b9d321 2016-05-20T22:15:28 X11: Fixed typos in error messages and source comments.
Philipp Wiesemann 81235118 2016-05-20T22:14:40 X11: Fixed missing error message if SDL_GetDisplayDPI() failed.
Philipp Wiesemann e964d00f 2016-05-11T21:11:12 X11: Fixed SDL_GL_GetSwapInterval() returning -1 if interval is unknown. It should return 0 as a safe default if the interval can not be determined.
Ryan C. Gordon f647dfe8 2016-03-04T19:41:16 x11: Fix a few more XMoveWindow() calls to adjust for border size. Also, fix my inability to do basic math ('+' should have been '-').
Ryan C. Gordon 02f49fdb 2016-03-04T18:47:19 x11: Deal with window borders better. - Cache the _NET_FRAME_EXTENTS data locally, so we don't have to query the X server for them (instead, we update our cached data when PropertyNotify events alert us to a change). - Use our cached extents for X11_GetWindowBordersSize(), so it's a fast call. - Window position was meant to refer to the client area, not the window decorations, so adjust appropriately when getting/setting the position.
Ryan C. Gordon 2436ca20 2016-02-20T01:03:39 x11: better fix for the previous commit's fullscreen vs maximized issue.
Ryan C. Gordon a4627c5e 2016-02-20T00:44:42 x11: Don't mess with fullscreen vs maximized window state on unmapped windows.
Ryan C. Gordon df4be2f2 2016-02-18T23:27:58 x11/wayland/mir: Make the dynamic loading macro salsa a little less messy.
Ryan C. Gordon 45407d0e 2016-02-15T21:49:09 x11: Removed an assert. This assert triggers when run under XMonad. It's safe to pass a zero here anyhow, as this will still work "well enough" and the original problem--GNOME printing a warning message--is still fixed because GNOME's window manager gives us a chance to grab a non-zero user-time value before this code is run.
Ryan C. Gordon 0e2badc1 2016-02-12T00:27:21 x11: Patched to compile with DEBUG_XEVENTS on C89 compilers.
Ryan C. Gordon 5ed63ae3 2016-02-08T01:08:21 x11: Updated imKStoUCS.* to latest from x.org. This was a version from XFree86 before now. :) Although not much has changed.
Alex Szpakowski 32592178 2016-01-31T09:39:42 x11: Fix AltGr generating an invalid keycode (bug #3244). Thanks Thomas!
Ryan C. Gordon ed620333 2016-01-07T19:58:00 x11: make last mouse coords sane upon window entry (thanks, Cengiz!). (and thanks to Cengiz for many of the previous Unreal-related patches! They were generically credited to Epic Games, but a large amount of that work was his contribution.) Fixes Bugzilla #3067.
Ryan C. Gordon eeb89999 2016-01-05T05:22:35 Patched to compile.
Ryan C. Gordon 3bdaf4c6 2016-01-05T02:46:10 Added SDL_SetWindowOpacity() and SDL_GetWindowOpacity(). This is currently implemented for X11, Cocoa, Windows, and DirectFB. This patch is based on work in Unreal Engine 4's fork of SDL, compliments of Epic Games.
Ryan C. Gordon f9d478b6 2016-01-05T02:40:14 x11: _NET_WM_PID needs a long, not a pid_t, I think.
Ryan C. Gordon 7605ccf6 2016-01-05T02:29:16 Use SDL's stdinc functions instead of C runtime calls.
Ryan C. Gordon 5696e88e 2016-01-05T02:29:06 Added SDL_GetWindowBordersSize(). This is currently only implemented for X11. This patch is based on work in Unreal Engine 4's fork of SDL, compliments of Epic Games.
Ryan C. Gordon e497e465 2016-01-05T02:28:56 Added SDL_SetWindowInputFocus(). This is currently only implemented for X11. This patch is based on work in Unreal Engine 4's fork of SDL, compliments of Epic Games.
Ryan C. Gordon dc532c70 2016-01-05T02:27:50 Added SDL_WINDOWEVENT_TAKE_FOCUS. This is for corner cases where a multi-window app is activated and wants to make a decision about where focus should go. This patch came from Unreal Engine 4's fork of SDL, compliments of Epic Games.
Ryan C. Gordon f9af0c03 2016-01-05T02:27:26 x11: Put a matching window_group wmhint on every window created. This is useful to the Window Manager, so it can know to associate multiple SDL windows with a single app.
Ryan C. Gordon f9b73793 2016-01-05T02:26:45 Added SDL_DROPTEXT event, for dragging and dropping string data. This patch is based on work in Unreal Engine 4's fork of SDL, compliments of Epic Games.
Ryan C. Gordon 8e855f2f 2016-01-05T01:42:00 Added SDL_DROPBEGIN and SDL_DROPCOMPLETE events, plus window IDs for drops. This allows an app to know when a set of drops are coming in a grouping of some sort (for example, a user selected multiple files and dropped them all on the window with a single drag), and when that set is complete. This also adds a window ID to the drop events, so the app can determine to which window a given drop was delivered. For application-level drops (for example, you launched an app by dropping a file on its icon), the window ID will be zero.
Ryan C. Gordon f2defe5e 2016-01-05T01:30:40 Added special window type flags. Specifically: always on top, skip taskbar, tooltip, utility, and popup menu. This is currently only implemented for X11. This patch is based on work in Unreal Engine 4's fork of SDL, compliments of Epic Games.
Ryan C. Gordon c3114975 2016-01-04T23:52:40 Added SDL_GetDisplayUsableBounds().
Ryan C. Gordon 81209acb 2016-01-04T23:44:27 x11: Let apps specify that video init should fail if XRandR is unavailable. Notably: it sets the error string to inform you that your custom SDL is built without xrandr support, which apparently has been a support issue for Unreal Engine 4 developers.
Ryan C. Gordon 7678b1db 2016-01-04T16:36:42 Patch to compile on C89 compilers.
Ryan C. Gordon 6df5e1e5 2016-01-04T16:25:27 x11: Support _NET_WM_USER_TIME and give _NET_ACTIVE_WINDOW a valid timestamp. Fixes Bugzilla #3056.
Sam Lantinga 42065e78 2016-01-02T10:10:34 Updated copyright to 2016
Ryan C. Gordon 18c7d6df 2015-12-29T02:16:14 XRandR: fixed primary output detection logic (thanks, "winterknight"!). Fixes Bugzilla #3185.
Ryan C. Gordon 257b7af2 2015-12-28T13:07:44 Sync up the caps/numlock state properly without sending key events. Partially fixes Bugzilla #2736 and #3125.
Philipp Wiesemann 32147ba7 2015-12-05T17:08:07 X11: Fixed memory leak when initializing multiple screens.
Ryan C. Gordon 5224dfcc 2015-11-17T12:15:35 X11: Let XRandR respect multiple screens (DISPLAY=:0.0 vs :0.1, etc).
Sam Lantinga 38edc177 2015-10-27T11:18:04 Add SDL_HINT_VIDEO_X11_NET_WM_PING to allow disabling _NET_WM_PING protocol handling in CreateWindow if desired.
Sam Lantinga 2b0140a9 2015-10-27T11:17:32 Add a new SDL_KEYMAPCHANGED SDL event to abstract notification of keyboard layout or input language changes.
Alex Baines 7543092a 2015-09-30T04:16:09 Call setlocale + XSetModifiers before XOpenIM, Work around ibus+xim duplicate events.
Bill Lash cceca2ac 2015-08-15T00:25:52 Additional patch to correct the number key assignments, and add assignments for keys that were missed
Ryan C. Gordon 81457603 2015-08-15T00:36:39 X11: Handle keyboard layout changing during app's run on Ubuntu 12.04 (etc). Fixes Bugzilla #3050 (in addition to Jason Wyatt's patch, prior to this).
Ryan C. Gordon 0d8c3a0b 2015-08-14T23:38:40 Patched to compile.
Ryan C. Gordon 0cf81fbd 2015-08-14T23:30:46 Minor coding convention fix.
Jason Wyatt fb37956d 2015-08-14T16:23:31 Supply current group when translating X11 Keycodes to Keysyms.
Ryan C. Gordon f2f8e6f5 2015-08-13T21:40:32 X11: only send mouse button up events if not a mousewheel "button" (Brackets in the wrong place, my bad!)
Ryan C. Gordon 874bf865 2015-08-13T17:40:28 X11: Simplified mousewheel event handling. Under load, this would race and report an incorrect mouse button event instead of a wheel event. Fixes Bugzilla #2987.
Ryan C. Gordon da6f2221 2015-08-13T17:37:09 X11: isConfigureNotify() isn't used at the moment, comment it out.
Ryan C. Gordon 8a1fd982 2015-08-13T14:56:16 X11: don't block on a ConfigureNotify event during SDL_SetWindowBordered(). Unity's window manager is (legitimately, since it moves the client window's position) sending one, and SDL was incorrectly trying to mask it out. Other window managers (KWin, apparently) don't move the window and would hang here indefinitely. Fixes Bugzilla #3052.
Ryan C. Gordon c67213f3 2015-08-07T01:02:35 X11: Fixed XRandR display detection. Previously this only worked on X11 when Xinerama was carrying the weight. Fixes Bugzilla #3062.
Ryan C. Gordon ca468042 2015-08-07T00:59:31 X11: Fixed a memory leak when adding duplicate display modes.
Alfred Reynolds dc2e9ba1 2015-07-29T17:19:04 Fix build.
Alfred Reynolds 51c72e10 2015-07-29T17:19:02 Add X11 implementation of SDL_GetDisplayDPI.
Ryan C. Gordon f5cf8676 2015-07-28T00:12:50 x11: Catch fatal X errors when calling glXMakeCurrent(). In extremely rare cases, probably due to misconfigured drivers, one might see this happen, and rather than terminate the process, we try to recover by reporting an error to the app. Fixes Bugzilla #3068.
Ryan C. Gordon e346f142 2015-07-17T21:03:58 SDL_WarpMouseGlobal() should return non-void. There are platforms it isn't implemented on (and currently can't be implemented on!), and there's currently no way for an app to know this. This shouldn't break ABI on apps that moved to a revision between 2.0.3 and 2.0.4.
Ryan C. Gordon 27055ea0 2015-07-14T23:46:35 X11: center parentless message boxes on the primary display if possible. This relies on a successful SDL_Init(SDL_INIT_VIDEO) to work, since it's silly to reproduce all the Xinerama/XRandR code in the message box parts. If X11 is available but SDL hasn't been initialized, the message box will center in the primary screen, which will be positioned weirdly on multi-head setups, but this should fix the most significant common case.
Ryan C. Gordon 0c19501e 2015-07-11T00:59:56 x11: Patched to compile on systems without the Xutf8LookupString() function.
Sam Lantinga b5c43a88 2015-07-03T09:18:14 Fixed style
Sam Lantinga 35c4468f 2015-07-03T09:17:24 commit a7d7af2a419b453188ffe87386455fc26c1306fa Author: Benoit Pierre <benoit.pierre@gmail.com> Date: Fri Jul 3 02:17:10 2015 +0200 fix 14dd48ae5bc43b61b2a0dd0b3177d22edec707ef regression The window manager detection code in X11_HasWindowManager does not work with Awesome (http://awesome.naquadah.org/). Remove it, and reuse the result of the more correct checks in X11_CheckWindowManager.
Ryan C. Gordon 1e3c28ac 2015-06-30T15:00:48 X11: Added a test for a weird X11 error we get with Xinerama, rarely.
Ryan C. Gordon 20ec1377 2015-06-30T14:41:17 X11: Call XRefreshKeyboardMapping() when we get various MappingNotify events. According to the Xlib docs, you need to do this or Xlib's internal state gets out of sync.
Ryan C. Gordon acdb494f 2015-06-30T14:39:39 X11: Don't ignore keyboard mapping changes. MappingNotify events don't have a window associated with them, so SDL was dropping these before the point where we would have handled them.
Sam Lantinga f1b7a843 2015-06-25T07:17:08 Fixed compiling if SDL_VIDEO_DRIVER_X11_HAS_XKBKEYCODETOKEYSYM is not defined
Philipp Wiesemann 0e45984f 2015-06-21T17:33:46 Fixed crash if initialization of EGL failed but was tried again later. The internal function SDL_EGL_LoadLibrary() did not delete and remove a mostly uninitialized data structure if loading the library first failed. A later try to use EGL then skipped initialization and assumed it was previously successful because the data structure now already existed. This led to at least one crash in the internal function SDL_EGL_ChooseConfig() because a NULL pointer was dereferenced to make a call to eglBindAPI().
Ryan C. Gordon 8875a401 2015-04-22T16:50:48 x11: Optimize SDL_GetGlobalMouseState() a little. Use XInput2 to mark the global mouse state as dirty so we don't have to make a bunch of roundtrips to the X server when nothing has changed.
Ryan C. Gordon 0c0ce209 2015-04-21T10:19:20 Updated comment: this is the correct way to do fullscreen on X11 now.