Commit Graph

648 Commits

Author SHA1 Message Date
Sam Lantinga ebfb2ecb68 don't toggle SDL fullscreen state on OSX if we're destroying the window 2015-11-09 08:55:01 -08:00
Sam Lantinga eeddb7c534 more SDL fullscreen state tracking fixes, don't update fullscreen flags on failure to change fullscreen state 2015-11-09 08:54:56 -08:00
Sam Lantinga 792354d6f0 SDL OSX implementation must account for the fact that going fullscreen can fail. improve the logic around retrying, make a few attempts before failing. 2015-11-09 08:54:49 -08:00
Sam Lantinga 2d884656c4 add hacky support for failed fullscreen transitions. SDL doesn't have the concept of a fullscreen transition that failed. if the user is actively changing spaces while the app goes fullscreen, it fails to go fullscreen; now it will just try again instead of hanging around with the wrong window styles. 2015-11-09 08:54:42 -08:00
Alex Szpakowski 7ce64372c8 iOS MFi game controllers: inverted the thumbstick y axis values to match the behavior of other controllers. 2015-11-09 02:32:37 -04:00
Sam Lantinga cef2242025 Added Linux binding for Wii-U Pro controller 2015-11-05 18:10:19 -08:00
Sam Lantinga 38edc1779a Add SDL_HINT_VIDEO_X11_NET_WM_PING to allow disabling
_NET_WM_PING protocol handling in CreateWindow if
desired.
2015-10-27 11:18:04 -07:00
Sam Lantinga 2b0140a91f Add a new SDL_KEYMAPCHANGED SDL event to abstract notification of keyboard layout or input language changes. 2015-10-27 11:17:32 -07:00
Alex Szpakowski f8824cb99b Mac: Fix returning to the window's Space in OS X 10.11+ when SDL_WINDOW_FULLSCREEN_DESKTOP is used (bug #3152.) 2015-10-23 03:37:53 -03:00
Philipp Wiesemann 4c72d39ce7 D3D11: Fixed SDL_RenderDrawPoints() ignoring input after the first 128 points.
If a limit would be needed then count should be adapted before stack allocation.
2015-10-15 22:26:21 +02:00
Philipp Wiesemann 86711041f2 Android: Added new key codes without mapping. 2015-10-07 21:16:18 +02:00
Sam Lantinga 5b1741132f Converted tabs to spaces for SDL style 2015-10-06 21:40:50 -07:00
Sam Lantinga 9bd640e1a0 Fixed sending a size event while setting up a window (fix for DOTA 2 on Source 2) 2015-10-06 21:16:21 -07:00
Ryan C. Gordon c5e68d68e7 Mac: Reset display if going from fullscreen to a fullscreen Space or vice-versa.
Otherwise, bad things happen.
2015-10-06 00:10:54 -04:00
Sam Lantinga 7bc72eaf84 Fixed forcing the window size when creating a non-resizable window on Windows. 2015-10-01 11:21:06 -07:00
Sam Lantinga 667783ba88 Fixed swapped Windows and Linux entries for the Cideko AK08b 2015-09-30 16:00:21 -07:00
Sam Lantinga a0c4b56ff9 SDL - added new SDL_JoystickCurrentPowerLevel() API that returns the battery level of the selected joystick. Currently only implemented for XInput devices, other platforms are a TODO.
CR: Sam
2015-09-30 15:39:30 -07:00
Sam Lantinga c2f0394831 Fix crash on controller hotplug on linux.
CR: Sam
2015-09-30 15:38:30 -07:00
Sam Lantinga e015140af3 SDL - add dynapi entry points for SDL_JoystickCurrentPowerLevel 2015-09-30 15:38:18 -07:00
Sam Lantinga ed23a3f887 Added support for the Cideko AK08b 2015-09-30 15:33:33 -07:00
Philipp Wiesemann 10daf1f4d3 Android: Removed three internal functions not used by SDL.
They were not needed internally since the switch to the common EGL backend.

Thanks to the SDL mailing list for pointing out that the functions seem unused.
2015-09-27 20:12:47 +02:00
Alex Szpakowski ab2a350033 iOS: show message boxes using the new UIAlertController APIs when supported, rather than the deprecated UIAlertView.
UIAlertController is also supported on tvOS, whereas UIAlertView is not.
2015-09-25 15:17:20 -03:00
Philipp Wiesemann 774b077513 iOS: Fixed pointer dereference after free. 2015-09-21 21:19:37 +02:00
Alex Szpakowski 2bf6f1bcb7 Added initial support for MFi game controllers on iOS. 2015-09-20 23:08:36 -03:00
Philipp Wiesemann efad04c317 Android: Added check if Java method for APK expansion file exists. 2015-09-18 21:26:46 +02:00
Philipp Wiesemann 6e7c479ec2 Android: Fixed trying to read from APK expansion files without version hint set.
This also fixed overwriting the asset error message which is more useful if no
APK expansion files are available and the requested file was not found.
2015-09-17 22:30:24 +02:00
Philipp Wiesemann 92ca42d940 Android: Renamed SDLActivity's Java method used for APK expansion files.
The name was not correct.
2015-09-17 22:24:54 +02:00
Alex Szpakowski ecfdb10cfa iOS SDL_GL_CreateContext: Clamp the multisample sample count when the requested value is too high, rather than failing to create the context.
This matches the SDL_GL_CreateContext behavior in OS X.
2015-09-15 00:25:07 -03:00
Alex Szpakowski a506f1cbc7 Windows: Try to use xinput9_1_0.dll if XInput 1.4 and 1.3 are not available.
XInput "9.1.0" ships with Windows Vista and 7 systems, but it lacks some features, including support for detecting Guide button presses.
2015-09-14 22:50:55 -03:00
Alex Szpakowski 76fc378837 Fixed the header guard in the darwin SDL_sysjoystick_c.h file. 2015-09-14 22:44:20 -03:00
Sam Lantinga 08ce12c4e3 Fixed divide by zero if the application has run out of GDI handles and is trying to show an error dialog 2015-09-14 11:15:25 -07:00
Ryan C. Gordon 4295a6fe47 Mac: Fixed off-by-one bug when plugging in a joystick (thanks, Konstantin!). 2015-09-13 11:29:45 -04:00
Alex Szpakowski 82c8825cb5 iOS: Added support for force-touch on capable devices. 2015-09-09 19:08:52 -03:00
Alex Szpakowski 6a32ca7a39 Mac: Fixed SDL_SetWindowSize to set the size of the content area of the window, rather than the total size including decorations. 2015-09-09 13:55:11 -03:00
Philipp Wiesemann e8757e873e Android: Changed return type of four JNI functions from int to jint. 2015-09-05 20:21:52 +02:00
Philipp Wiesemann 212e99633b PSP: Replaced use of SDLKey with SDL_Keycode. 2015-08-24 22:35:01 +02:00
Philipp Wiesemann 991feafa09 PSP: Fixed a syntax error.
Found by Cppcheck.
2015-08-24 22:31:36 +02:00
Philipp Wiesemann 0856a7ef34 Changed an error return value from 0 to NULL for consistency. 2015-08-21 23:50:37 +02:00
Philipp Wiesemann 98986f39e9 Removed not needed call to pthread_attr_getstacksize() for SDL_CreateThread(). 2015-08-15 21:21:29 +02:00
Ryan C. Gordon 8145760314 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).
2015-08-15 00:36:39 -04:00
Ryan C. Gordon 0d8c3a0b76 Patched to compile. 2015-08-14 23:38:40 -04:00
Ryan C. Gordon 0cf81fbdf9 Minor coding convention fix. 2015-08-14 23:30:46 -04:00
Jason Wyatt fb37956d9b Supply current group when translating X11 Keycodes to Keysyms. 2015-08-14 16:23:31 +01:00
Ryan C. Gordon 9e2b90e2a4 Cocoa: Keep the window's screen position through SDL_SetWindowSize().
The Y coordinate is flipped in Cocoa, so if you change the height, the window
will move and maybe clip against the screen edge if you don't adjust its Y
coordinate to match.

Possibly fixes Bugzilla #3066.
2015-08-14 01:20:41 -04:00
Ryan C. Gordon f2f8e6f5ef X11: only send mouse button up events if not a mousewheel "button"
(Brackets in the wrong place, my bad!)
2015-08-13 21:40:32 -04:00
Ryan C. Gordon 874bf86504 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.
2015-08-13 17:40:28 -04:00
Ryan C. Gordon da6f2221e3 X11: isConfigureNotify() isn't used at the moment, comment it out. 2015-08-13 17:37:09 -04:00
Ryan C. Gordon 8a1fd98261 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.
2015-08-13 14:56:16 -04:00
Philipp Wiesemann 3362c9f196 Emscripten: Changed return -1 after SDL_SetError() to return SDL_SetError(). 2015-08-09 20:00:51 +02:00
Ryan C. Gordon c67213f331 X11: Fixed XRandR display detection.
Previously this only worked on X11 when Xinerama was carrying the weight.

Fixes Bugzilla #3062.
2015-08-07 01:02:35 -04:00
Ryan C. Gordon ca46804210 X11: Fixed a memory leak when adding duplicate display modes. 2015-08-07 00:59:31 -04:00
Philipp Wiesemann fcc5940935 Emscripten: Added missing error messages for audio and joystick init failures. 2015-08-05 21:04:10 +02:00
andrewb a702c338f0 Add SDL_HINT_WINDOWS_NO_CLOSE_ON_ALT_F4 to SDL so that Reborn can keep running through Alt+F4. 2015-08-03 11:37:03 -07:00
Sam Lantinga 270f38db08 Fixed bug 3083 - Android JNIEXPORT and JNICALL missing
Martin Gerhardy

Just a minor thing, but a huge outcome. All the other jni related functions already have those flags, but the nativeInit function lacks them - so it might be stripped away.
2015-08-01 22:03:50 -07:00
Alex Szpakowski 5a3cc7f580 EGL: Added support for sRGB system framebuffers, when the required EGL extension is present. 2015-08-01 15:16:57 -03:00
Philipp Wiesemann c57f409fe8 Mac: Fixed check for SDL_HINT_MAC_BACKGROUND_APP. 2015-07-31 20:16:58 +02:00
Alfred Reynolds 0aa2a6df2c SDL
- fix hint check, we want or not and
2015-07-31 09:16:21 -07:00
Sam Lantinga e93f90ae90 Trivial integer truncation warning fixes. 2015-07-30 10:01:04 -07:00
Alfred Reynolds 628d8edb95 SDL
- add a new SDL_HINT_MAC_BACKGROUND_APP hint, when set or set to 1 don't force the app to be foreground
2015-07-29 17:19:15 -07:00
Alfred Reynolds 5aaf81c84e Fix up monitor enumeration for Windows 8.1 case. 2015-07-29 17:19:13 -07:00
Alfred Reynolds e09d95c36a Fix SDL_GetWindowPosition to be properly monitor-aware and return the monitor x,y when fullscreened. 2015-07-29 17:19:11 -07:00
Alfred Reynolds b0e145b3e1 Move GetDisplayDPI to the end of the file. 2015-07-29 17:19:06 -07:00
Alfred Reynolds dc2e9ba13b Fix build. 2015-07-29 17:19:04 -07:00
Alfred Reynolds 51c72e10f7 Add X11 implementation of SDL_GetDisplayDPI. 2015-07-29 17:19:02 -07:00
Alfred Reynolds 61c7415071 Add SDL_GetDisplayDPI routine and implement for Windows. 2015-07-29 17:18:56 -07:00
Ryan C. Gordon f5cf86769a 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.
2015-07-28 00:12:50 -04:00
Alex Szpakowski c344b734f4 iOS: Avoid generating an OpenGL error (but still fail to create the context) if the specified MSAA sample count is unsupported. 2015-07-19 19:56:16 -03:00
Alex Szpakowski 6ea942dae3 Added MSAA support for OpenGL ES contexts on iOS.
Note that extra steps must be taken when using glReadPixels to read the contents of the main OpenGL ES framebuffer on iOS, if multisampling is used. See the OpenGL ES section of README-ios.md for details.
2015-07-19 19:44:40 -03:00
Ryan C. Gordon b24586309c Fixed dynapi for new SDL_WarpMouseGlobal() function signature. 2015-07-18 00:04:49 -04:00
Ryan C. Gordon 9d3d643742 Patched to compile on Raspberry Pi. 2015-07-18 00:03:34 -04:00
Ryan C. Gordon e346f14277 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.
2015-07-17 21:03:58 -04:00
Philipp Wiesemann 16e18817e9 Windows: Fixed wrong debugger output if logging empty string as info or warning. 2015-07-16 21:31:21 +02:00
Philipp Wiesemann 2919905620 PSP: Fixed error handling in SDL_SemWaitTimeout().
Signed integers were converted to unsigned before being checked if smaller 0.

Found by Cppcheck.
2015-07-15 21:11:24 +02:00
Ryan C. Gordon 27055ea0ad 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.
2015-07-14 23:46:35 -04:00
Ryan C. Gordon 0c19501eeb x11: Patched to compile on systems without the Xutf8LookupString() function. 2015-07-11 00:59:56 -04:00
Philipp Wiesemann 4679195dbf Fixed memory leak in test harness.
Found by Cppcheck.
2015-07-06 21:02:20 +02:00
Sam Lantinga 396b3b8992 Better fix for bug 3048, don't crash if the window title is NULL 2015-07-05 15:45:48 -07:00
David Ludwig d0ba0c1d8a Fixed bug 3048, "Crashes in Cocoa_SetWindowTitle" 2015-07-04 21:04:49 -04:00
Ryan C. Gordon 65a1a3e7e9 Cocoa: support drag-and-drop of multiple objects. 2015-07-04 14:09:09 -04:00
Sam Lantinga b5c43a88b4 Fixed style 2015-07-03 09:18:14 -07:00
Sam Lantinga 35c4468f9d 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.
2015-07-03 09:17:24 -07:00
Philipp Wiesemann 26ecab9010 Removed redundant variable check when processing gestures. 2015-07-01 21:10:54 +02:00
Sam Lantinga e8954d5d8c Hack to fix missing window decorations after toggling fullscreen mode in Mac OS X 10.10 2015-06-30 19:30:02 -07:00
Ryan C. Gordon 1e3c28ac64 X11: Added a test for a weird X11 error we get with Xinerama, rarely. 2015-06-30 15:00:48 -04:00
Ryan C. Gordon 20ec137763 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.
2015-06-30 14:41:17 -04:00
Ryan C. Gordon acdb494ffd 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.
2015-06-30 14:39:39 -04:00
Ryan C. Gordon 4986563d2f Fixed assertion failure in diskaudio target caused by new hotplugging support.
Fixes Bugzilla #3032.
2015-06-30 13:46:06 -04:00
Sam Lantinga f1b7a8434f Fixed compiling if SDL_VIDEO_DRIVER_X11_HAS_XKBKEYCODETOKEYSYM is not defined 2015-06-25 07:17:08 -07:00
Sam Lantinga 3a08b46336 Fixed bug 2834 - Patch to support dead keys on Windows
Elise Maurer

When inputting text, dead-keys are currently not handled correctly on Windows with the latest SDL2 tip as well as the 2.0.3 release.

Using a French AZERTY keyboard, when I type the `^` key followed by `e` key to compose the `` character, I erroneously get two SDL_TEXTINPUT events, one with the `^` character and one with the `e` character.

I've looked at the history for SDL_windowsevents.c and there's been some back-and-forth with several methods for handling text input:

  * r8142 removed any handling of WM_CHAR because keyboard input was being handled through WM_KEYDOWN along with ToUnicode since r7645.

  * But using ToUnicode actually breaks dead-keys (googling for "ToUnicode dead keys" reports many horror stories of people trying to work around that and failing).

  * It seems like r7645 introduced a double-fix: it fixed WM_CHAR to properly handle Unicode, and also (unnecessarily?) added text input handling to WM_KEYDOWN. Later, r8142 removed the WM_CHAR stuff instead of the WM_KEYDOWN stuff.

The attached patch restores handling of text input through WM_CHAR and removes it from WM_KEYDOWN. I've tested it with French, English and Russian layouts and it seems to do its job. Obviously, with such matters, it's still a risky change.
2015-06-25 11:49:48 -07:00
Sam Lantinga 82eec4b630 Fixed whitespace in SDL_evdev.c 2015-06-24 17:55:38 -07:00
Sam Lantinga 9f50d63dd5 Fixed an issue with mouse/keyboard removal
Sometimes, on removal SDL_EVDEV_udev_callback() gets called with zero udev_class. This in turn seems to be caused the SDL_udev.c:guess_device_class() failing to find the attributes of the parent device.

Apparently this is normal, attributes are not guaranteed to be in place during removal, depending on timing. This lack of attributes causes guess_device_class() to return zero.

This fix mimics the code in linux/SDL_sysjoystick.c:joystick_udev_callback() which effectively has the same fix already in place.
2015-06-24 17:54:39 -07:00
Alfred Reynolds cbbdd27ad3 SDL
- disable compiling in XAudio2 support. We both need the DX SDK to make this code plus we need to work out the runtime dependency problem this code bring in on windows (needing the DX runtime installed).

CR: SamL
2015-06-24 10:56:51 -07:00
Alfred Reynolds e4e4e1b82a SDL
- do the scancode to keyboard code lookup for the grave key, so that we can show users the correct keyface for the key, rather than forcing it to "`".  Note that if a game is using SDLK_* for its KB mapping then after this change on some keyboards the top left key will no longer be mapped correctly with the old data.

CR: SamL
2015-06-24 10:56:37 -07:00
Sam Lantinga b7aa856c8f Fixed bug 3030 - SDL_RecreateWindow fails to restore title, icon, etc.
Adam M.

It loses the title and icon when window recreation fails. For instance, this may happen when trying to create an OpenGL ES window on a system that doesn't support it. But at that point, the title and icon have already been lost.
2015-06-22 23:36:06 -07:00
Ryan C. Gordon ded3a16e72 Fixed compiler warning about shadowed local variables. 2015-06-23 01:44:44 -04:00
Philipp Wiesemann 8cea1b986e Windows: Fixed crash if initialization of EGL failed but was tried again later. 2015-06-21 19:37:37 +02:00
Philipp Wiesemann 72590685c0 Backed out changeset 4ad56dbf4a6f 2015-06-21 19:36:35 +02:00
Philipp Wiesemann 0e45984fa0 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().
2015-06-21 17:33:46 +02:00