Commit Graph

691 Commits

Author SHA1 Message Date
Sam Lantinga
42f85aa29e Fixed building and using fcitx IME support on Linux 2016-10-08 11:30:07 -07:00
Sam Lantinga
27d4f09929 Implemented SDL_GetHintBoolean() to make it easier to check boolean hints 2016-10-07 23:40:44 -07:00
Sam Lantinga
808c75d1cf 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)
2016-10-07 18:57:40 -07:00
Alex Baines
752931d85e Improve X11 key handling when XKB isn't available + add xvnc scancodes.
Based on a patch by Bill Lash (see bug 3094).
2016-10-03 11:35:34 +01:00
Bill Lash
cceca2ac99 Additional patch to correct the number key assignments, and add assignments for keys that were missed 2015-08-15 00:25:52 -05:00
Sam Lantinga
eea76fc199 Fixed bug 3063 - Wayland: SDL resizes EGL surface to 0x0.
x414e54

Wayland will sometimes send empty resize events (0 width and 0 height) to the client. I have not worked out the exact conditions a client would receive these but I can assume it might be if the window is offscreen or not mapped yet.

This causes issues with some SDL clients as they receive the 0x0 event and unexpected resize event or might not request to resize back to the correct size.

As per the wl_shell Wayland spec configure events are only a suggestion and the client is free to ignore or pick a different size (this is how min/max and fixed aspect ratio is supped to be implemented).

A patch is attached but is just the first iteration and I will fix any issues such as checking for FULLSCREEN/MAXIMIZED or RESIZABLE flags unless someone else fixes this first.

I have update to take into account non resizable and fullscreen windows. Also adding in maximize/restore and title functions for Wayland.
2016-10-07 18:11:03 -07:00
Sam Lantinga
62b9e1c797 Fixed bug 3061 - Selecting the dummy video driver on Mac OS X results in an error
Darren Kulp

The dummy video driver is not available on Mac OS X if SDL_VIDEO_OPENGL is set at library compilation time.

In src/video/SDL_video.c, there is a compile-time check in SDL_CreateWindow() for (SDL_VIDEO_OPENGL && __MACOSX__). When it succeeds, SDL_WINDOW_OPENGL is always requested. Since the dummy video driver does not supply an OpenGL implementation, the error "No OpenGL support in video driver" is supplied to the user, and SDL_CreateWindow() is exited early.
2016-10-07 18:09:09 -07:00
Sam Lantinga
8b64a78da9 Fixed bug 2956 - De-reference videodata without NULL check in X11_DispatchEvent(_THIS) function 2016-10-07 17:26:25 -07:00
Sam Lantinga
d2676c2985 Fixed bug 2924 - SDL_CreateRGBSurface[From] versions that take SDL_PIXELFORMAT enum
Daniel Gibson

Currently, SDL_CreateRGBSurface() and SDL_CreateRGBSurfaceFrom() take Uint32 masks for RGBA to "describe" the Pixelformat of the surface.
Internally those value are only used to map to one of the SDL_PIXELFORMAT_* enum values that are used for further processing.

I think it would be both handy and more efficient to be able to specify SDL_PIXELFORMAT_* yourself without using SDL_PixelFormatEnumToMasks() to create masks first, so I implemented functions that do that:
SDL_CreateRGBSurfaceWithFormat() and SDL_CreateRGBSurfaceWithFormatFrom() which are like the versions without "WithFormat" but instead of taking 4 Uint32s for R/G/B/A masks, they take one for a SDL_PIXELFORMAT_* enum value.

Together with https://bugzilla.libsdl.org/show_bug.cgi?id=2923 creating a SDL_Surface* from RGBA data (e.g. from stb_image)  is as easy as
  surf = SDL_SDL_CreateRGBSurfaceWithFormat(0, w, h, bppToUse*8, SDL_PIXELFORMAT_RGBA32);
2016-10-07 17:04:58 -07:00
Sam Lantinga
dac3892816 Fixed bug 2832 - Inverted arrow-key navigation in MessageBox
Jan Hellwig

On Windows, you are able to navigate between the buttons on a MessageBox that was created using SDL_ShowMessageBox using the arrow keys. However, if you press the left arrow key, the selection jumps to the button on the right of the currently selected one (and vice versa).

This can be fixed by reversing the order in which the buttons are added to the dialog.

The attached patch files fixes this problem. However the first press of an arrow key leads to the selection of the leftmost or rightmost button on the MessageBox, not to the selection of the button left/right of the one that is selected by default.
2016-10-07 16:19:50 -07:00
Sam Lantinga
f674f2311a Fixed bug 2808 - Fix SDL reporting wrong window size on resume
Jonas Kulla

At startup time, the single android window is assigned a "windowed" (window->windowed.{w,h}) size based on the current orientation of the mobile device; this size is never updated throughout the lifetime of the app.

This becomes problematic when the app is paused and then resumed in an orientation that it did not start up in. Eventually, 'SDL_OnWindowRestored()' is called, which calls 'SDL_UpdateFullscreenMode()'. This function is very problematic because it is written with a desktop monitor in mind: it tries to find a matching display mode for the windowed size, doesn't find any, and finally applies the windowed size as the fullscreen one. In the end, the windowed size is reported in a RESIZED event, which doesn't correspond to the actual surface size.

To see this in action: Start an orientation aware SDL app in eg. portrait mode, suspend the app, put the device into landscape orientation and resume the app. It will erroneously render in portrait mode (until the device is rotated again).
2016-10-07 15:21:19 -07:00
Sam Lantinga
5d5127c4a0 Fixed compiler warning - this should have been a const char pointer 2016-10-04 03:38:39 -07:00
Sam Lantinga
351adf156a Fixed bug 2157 - Caps Lock key produces key down & key up events while key is still pressed.
Tim McDaniel

Using checkkeys test app:
* Press and hold Caps Lock key.
* checkkeys reports a CapsLock key pressed event and a CapsLock key released event.
* Release Caps Lock key.
* checkkeys reports no further events.

This patch fixes OSX Caps Lock up/down event detection by installing a HID callback.
2016-10-04 02:11:52 -07:00
Alex Szpakowski
8500de8fa5 Fix tabs -> spaces 2016-10-01 19:16:46 -03:00
Alex Szpakowski
f0539aa25e Fix bug 3436 - SDL_RaiseWindow not working on windows 2016-10-01 19:12:58 -03:00
Sam Lantinga
d2c8c5094c Fixed build for X11 2016-10-01 14:54:05 -07:00
Sam Lantinga
fa0f417631 Fixed build warnings and errors 2016-10-01 14:48:18 -07:00
Sam Lantinga
fae5d0eab3 Fixed bug 3107 OSX - Process events in SDLApplication to fix integration with CEF.
John Wordsworth

While attempting to integrate CEF (Browser) into an SDL application, we noticed that there were problems on OS X where approximately 50% of the input events were essentially being lost - even when we were using off-screen rendering in CEF and passing through input events manually.

It appears that this problem has been around for a while (see: http://www.magpcss.org/ceforum/viewtopic.php?f=6&t=11141).

Please consider the following patch that fixes this issue. Instead of processing events directly after calling [NSApp nextEventMatchingMask:...] we now pass these events down to NSApp, for processing by an overloaded sendEvent: method. Chromium also forwards events to NSApp in the same way, which means we don't miss events, even if they were originally dequeued by CEF.
2016-10-01 14:34:52 -07:00
Sam Lantinga
359f59aef5 Fixed bug 3130 - Spacebar not responding
Alex Baines

Make sure group is valid before passing it to XkbKeysymToKeycode.
2016-10-01 14:22:10 -07:00
Magnus Bjerke Vik
555e6c9686 Fix SDL not resizing window when Android screen resolution changes 2016-10-01 14:18:29 -07:00
Sam Lantinga
0250eb3c4f 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.
2016-10-01 14:16:04 -07:00
Alex Baines
7543092add Call setlocale + XSetModifiers before XOpenIM, Work around ibus+xim duplicate events. 2015-09-30 04:16:09 +01:00
Sam Lantinga
da6197c5a8 Fixed 3149 - Mouse Pointer Raspberry Pi corrupt when moving over screen edges
Patrick Gutlich

The mouse cursor gets corrupted when the mouse moves over the screen edges (right and bottom) a weird type of scaling seems to occur and you end up with a blank square.
2016-10-01 13:59:59 -07:00
Sam Lantinga
473051f6bb Fixed bug 3159 - SDL_blit_slow with BLENDING does not work
Fritzor

Source Suface is ABGR and Destination Surface is ABGR. We use software blending. In the Switch-Case statement for SDL_COPY_BLEND (Line 126) the alpha-channel is not calculated like in every SDL_blit_auto - function. So if the destination Surface has alpha - channel of zero the resulting surface has zero as well.
Add:  ?dstA = srcA + ((255 - srcA) * dstA) / 255;? to code and everything is okay.
2016-10-01 13:40:01 -07:00
Sam Lantinga
f4b26cd8e0 Removed carriage returns from previous patch 2016-10-01 13:16:31 -07:00
Sam Lantinga
7b0ccd32e5 Fixed bug 3405 - Wrong default icon size on windows systems
Evgeny Vrublevsky

Original code in the video/windows/SDL_windowsevents.c registers obsolete WNDCLASS (not WNDCLASSEX). As the result only one icon size is used as the small and normal icons. Also original code doesn't specify required size of an icon. As the result when 256x256 icon is available, the program uses it as a default icon, and it looks ugly.

We have to use WNDCLASSEX and load icons with proper sizes which we can get using GetSystemMetrics.

Better idea. We could use the first icon from resources, like the Explorer does. Patch is included. It also correctly loads large and small icons, so it will look nice everywhere.
2016-10-01 13:14:51 -07:00
Sam Lantinga
765d8bea01 Fixed bug 3305 - Fixed TextInput status when the keyboard was dismissed with the dismiss key on the iPad
Diego

The keyboard on iPads has a dismiss button that hides the keyboard. When the keyboard was hidden using that button, instead of the return key, SDL was still reporting IsTextInputActive as true. This patch adds an extra SDL_StopTextInput when iOS reports the keyboard will hide.
2016-10-01 12:46:36 -07:00
Ethan Lee
c3e48e71b4 Force WM_PAINT events on window resize 2016-04-12 10:45:56 -04:00
Sam Lantinga
0b576962ca Reset dead keys when the SDL window loses focus, so dead keys pressed in SDL applications don't affect text input into other applications. 2016-10-01 12:17:42 -07:00
Sam Lantinga
1e6e595484 Fixed bug 3332 - Win32: reset deadkeys in StartTextInput/StopTextInput
Eric Wasylishen

The bug here is that a dead keys pressed before calling SDL_StartTextInput() carries over into future text input, so the next key pressed will have the deadkey applied to it.

This in undesirable, imho, and doesn't occur on OS X (haven't check Linux or elsewhere). It's causing a problem for Quakespasm on German keyboard layouts, where we use the ^ deadkey to toggle the console (which enables/disables text input), and ^ characters are showing up in the TEXTINPUT events.
2016-10-01 11:54:02 -07:00
Sam Lantinga
9fff05f8d6 Fixed bug 3352 - Adding alpha mask support to SDL_SaveBMP_RW
Simon Hug

The current SDL_SaveBMP_RW function that saves surfaces to a BMP uses an old bitmap header which doesn't officially support alpha channels. Applications just ignore the byte where the alpha is stored. This can easily be extended by using a newer header version and setting the alpha mask.

The attached patch has these changes:

- Extending the description of the function in the SDL_surface.h header with the supported formats.
- Refining when surfaces get stored to a 32-bit BMP. (Must have bit depth of 8 or higher and must have an alpha mask or colorkey.)
- Fixing a small bug that saves 24-bit BGR surfaces with a colorkey in a 24-bit BMP.
- Adding code that switches to the bitmap header version 4 if the surface has an alpha mask or colorkey. (I chose version 4 because Microsoft didn't lose its documentation behind a file cabinet like they did with version 3.)
- Adding a hint that can disable the use of the version 4 header. This is for people that need the legacy header or like the old behavior better. (I'm not sure about the hint name, though. May need changing if there are any rules to that.)
2016-10-01 11:29:13 -07:00
Sam Lantinga
fd1d692bef Fixed bug 3368 - SDL_Blit_Slow doesn't ignore alpha values in colorkey comparison
Simon Hug

When the SDL_Blit_Slow function compares the pixel to the color key it does so without removing the alpha component from the pixel value and the key. This is different from the optimized 32-bit blitters which create a rgb mask and apply it to both to filter the alpha out. SDL_Blit_Slow will only skip the pixels with the exact alpha value of the key instead of all pixels with the same color.

The attached test case blits a surface with a color key and prints the pixel values to the console. The third row is expected to be skipped.
2016-10-01 10:46:10 -07:00
Ryan C. Gordon
e64c5186e2 windows: Removed hardcoded "1" for mouse clickthrough hint. 2016-09-29 23:42:18 -04:00
Ryan C. Gordon
f10db4071d haiku: Patched to compile. 2016-09-29 23:15:56 -04:00
Ryan C. Gordon
f2fcd324c5 windows: fix borderless windows at desktop resolution (thanks, Evgeny!).
Fixes Bugzilla #3404.
2016-09-29 23:12:58 -04:00
Ryan C. Gordon
b2510d9cbc x11: fixed incorrect SDL_GetWindowPosition() after resize (thanks, Jason!).
Fixes Bugzilla #3272.
2016-09-29 23:01:43 -04:00
Ryan C. Gordon
4f4c4b629f Added SDL_SetWindowResizable(). (thanks, Ethan!) 2016-09-29 22:52:41 -04:00
Sam Lantinga
67bdbcca44 Implemented SDL_HINT_MOUSE_FOCUS_CLICKTHROUGH on X11 2016-09-29 16:05:29 -07:00
Sam Lantinga
d285af2a96 Added Windows support for SDL_HINT_MOUSE_FOCUS_CLICKTHROUGH 2016-09-29 14:48:33 -07:00
Sam Lantinga
a13da2faa7 Generalized the hint for whether the application gets a mouse event when clicking on the window to activate it, and is now named SDL_HINT_MOUSE_FOCUS_CLICKTHROUGH.
The behavior is defined to not receive the click event, and this hint allows you to override that.
2016-09-29 13:34:49 -07:00
Sam Lantinga
8ddb4328b5 When clicking on a window to give it focus, don't pass the mouse click to the application. 2016-09-29 03:59:04 -07:00
Alex Szpakowski
f31c7086d8 Enable SDL_LoadObject on iOS 8+ and tvOS. 2016-09-25 15:02:06 -03:00
Alex Szpakowski
77bacfd72d tvOS launch images are now properly supported. 2016-09-25 11:46:25 -03:00
Alex Szpakowski
40ecac8e60 Don't try to load a launch storyboard on tvOS (it doesn't use them). 2016-09-25 00:21:12 -03:00
Alex Szpakowski
666d3fecc8 iOS/tvOS: Try to load the launch screen as a storyboard. Xcode 8 compiles it as a storyboard instead of a nib. 2016-09-24 23:33:49 -03:00
Alex Szpakowski
9165ba7ebd iOS/tvOS: Always send SDL_WINDOWEVENT_FOCUS_GAINED when a window is created on the main screen (fixes bug #3395). 2016-09-24 20:12:57 -03:00
Alex Szpakowski
450fa8cdf9 Use OS-provided click counts on macOS and iOS for mouse press and release events. 2016-09-24 18:46:34 -03:00
Alex Szpakowski
bac5394127 Fix mouse wheel events on macOS 10.12 (thanks Eric Wasylishen!)
Fixes bug #3432
2016-09-24 13:28:40 -03:00
Brandon Schaefer
89c538a4e3 Mir: Add gamma support set/get. Still need one more function to complete the set 2016-09-21 18:23:59 -07:00
Brandon Schaefer
a729c4f97a Mir: Add fixme (waiting for a public api to be added) 2016-09-21 16:28:23 -07:00
Brandon Schaefer
705ecf78f5 [Mir] Move to the new MirDisplayConfig API 2016-09-21 15:57:15 -07:00
Sam Lantinga
29214826ec Fixed warning with Xcode 7.3.0 2016-09-16 22:27:58 -07:00
Alex Szpakowski
4bcce330d1 tvOS: Add drop-file support 2016-09-15 21:49:29 -03:00
Alex Szpakowski
f050576665 Initial Apple TV / tvOS support.
The Apple TV remote is currently exposed as a joystick with its touch surface treated as two axes. Key presses are also generated when its buttons and touch surface are used.

A new hint has been added to help deal with deciding whether to background the app when the remote's menu button is pressed: SDL_HINT_APPLE_TV_CONTROLLER_UI_EVENTS.
2016-09-13 22:18:06 -03:00
Alex Szpakowski
86708c3cd8 Enable more compiler warnings in the Xcode projects (based on Xcode 8's suggestion), made some integer downcasts explicit. 2016-09-13 19:51:10 -03:00
Sam Lantinga
00791f3a87 Only prevent the default browser event handling when the specific event types aren't disabled by the user, patch contributed by Jonas Platte 2016-09-13 00:09:21 -07:00
Charlie Birks
993dd83510 Add mapping for media keys 2016-09-13 00:04:00 -07:00
Alon Zakai
1b6565fcb7 use Module.createContext for 2D rendering in emscripten 2016-09-13 00:03:59 -07:00
Alon Zakai
bec5573476 add some detail to fullscreen workaround comment; version 6
Conflicts:
	version.txt
2016-09-13 00:03:58 -07:00
Charlie Birks
405d64b207 only unset fullscreen flags if fullscreen failed 2016-09-13 00:03:56 -07:00
Charlie Birks
c68cac89df use screen resolution instead of canvas size 2016-09-13 00:03:55 -07:00
Boris Gjenero
791b946a42 Fix full screen mode in Firefox, which was broken by 9d4beb2 2016-09-13 00:03:54 -07:00
Boris Gjenero
b71208d452 Support SDL_SetWindowTitle() via Module['setWindowTitle']() 2016-09-13 00:03:53 -07:00
Jukka Jyl?nki
7cf44f1b4a Remove unused variable warning from Emscripten build in Emscripten_HandleFullscreenChange(). 2016-09-13 00:03:51 -07:00
Boris Gjenero
b54eb82c67 Unpress all keys on blur to avoid stuck keys 2016-09-13 00:03:49 -07:00
Boris Gjenero
a0a75f384f Listen for blur and focus events on window instead of canvas
Blur and focus events were not arriving for the canvas in
Firefox 35 and Chrome 40.
2016-09-13 00:03:48 -07:00
Boris Gjenero
3e5c4cec94 Mouse events use CSS coordinates, so don't scale by pixel_ratio 2016-09-13 00:03:46 -07:00
Boris Gjenero
a20c40c494 Accumulate subpixel mouse motion so motion is not lost.
Previously when the canvas was scaled up and the pointer was locked,
motion corresponding to less than one pixel was lost. Therefore,
slow mouse motion resulted in no motion. This fixes that.
2016-09-13 00:03:45 -07:00
TelpeNight
443998ff33 Fix of mouse events in browser without pointer locks 2016-09-13 00:03:44 -07:00
Alon Zakai
2b367cb6b0 optimize Emscripten_UpdateWindowFramebuffer
- avoid creating contexts and images all the time
 - use set and then fix alpha directly
2016-09-13 00:03:43 -07:00
Charlie Birks
98ec844388 send mouse move on enter/leave 2016-09-13 00:03:39 -07:00
Charlie Birks
a2ef0db8a8 listen for mouse up on document (fixes mouseup outside canvas) 2016-09-13 00:03:37 -07:00
Charlie Birks
cd05184f9b use SDL_SetMouseFocus 2016-09-13 00:03:36 -07:00
Sam Lantinga
bdca510fd6 simplify fullscreen handling using new fullscreen_strategy api, patch contributed by Charlie Birks 2016-09-13 00:03:28 -07:00
Charlie Birks
be08cc61f9 use css size for touch normalisation 2016-09-12 23:58:08 -07:00
Sam Lantinga
1096f32309 Reverted previous commit which breaks game controller input processing. 2016-09-09 15:12:09 -07:00
Sam Lantinga
61c0f2cf64 Suggestion from Apple: use kCFRunLoopCommonModes which does more complete event processing 2016-09-08 20:38:23 -07:00
Ryan C. Gordon
da1e3d6938 emscripten: special case to make SDL_ShowSimpleMessageBox() work.
Browsers don't have the functionality to fully support the generic
SDL_ShowMessageBox(), but this handles the likely most-common case.

Without this, you'd return immediately with a proper error result and no UI,
but probably no one checks that for SDL_ShowSimpleMessageBox. And if they
did: what would they do to handle this anyhow?

We'd need to lobby for an HTML spec of some sort that allows customizable
message boxes--that block!--to properly support SDL message boxes on
Emscripten, but this is probably Good Enough for now.
2016-09-06 13:13:03 -04:00
Sam Lantinga
f11a440999 wayland: Add support for relative mouse mode, by Jonas ?dahl <jadahl@gmail.com>
Generate the C protocol files from the protocol XML files installed by
wayland-protocols, and use them to implement support for relative pointer
motions and pointer locking.

Note that at the time, the protocol is unstable and may change in the future.
Any future breaking changes will, however, fail gracefully and result in no
regressions compared to before this patch.
2016-09-01 01:26:56 -07:00
Jonas ?dahl
19d3500ae1 wayland: Build own version of core protocol
Since we are loading shared objects dynamically, build our own version of the
core protocol symbols, so that we in the future can include protocol
extensions.
2016-06-23 18:39:05 +08:00
Bastien Nocera
736a624df0 Wayland: Set "class" for each window we create
This will be used by Wayland compositors to match the application ID and
.desktop file to the SDL window(s).

Applications can set the SDL_VIDEO_WAYLAND_WMCLASS environemnt variable
early in the process to override using the binary name as a fallback.

Note that we also support the SDL_VIDEO_X11_WMCLASS in the Wayland
backend so that if a program correctly associated the desktop file with
the window under X11, only a newer SDL would be needed for it to work
under Wayland.

https://bugzilla.libsdl.org/show_bug.cgi?id=3376
2016-09-01 01:22:58 -07:00
David Ludwig
f5d43cf912 WinRT: added an extra NULL pointer check for SDL_*ScreenSaver() backend code 2016-08-31 12:52:55 -04:00
Brandon Schaefer
ebb058910d Mir: Add mouse grab support (requires mir 0.24) 2016-08-30 12:58:00 -07:00
Philipp Wiesemann
cf28727f89 Android: Fixed missing mouse motion events while button down (thanks, Sylvain!).
Happened for real mouse if SDL_HINT_ANDROID_SEPARATE_MOUSE_AND_TOUCH was active.

Fixes Bugzilla #3313.
2016-08-30 21:14:52 +02:00
David Ludwig
5020fe8fdb WinRT: added SDL_*ScreenSaver() support; fixed crash when restoring app from screensaver 2016-08-29 20:27:21 -04:00
Ryan C. Gordon
5bcf1d256b cocoa: Fixed incorrect autorelease, noted by static analysis. 2016-08-28 19:06:31 -04:00
Ryan C. Gordon
2da1ec8354 Merge audio capture work back into the mainline. 2016-08-28 13:36:13 -04:00
David Ludwig
5150eb361f WinRT: fixed bug where Win10 GameBar, when shown + hidden, might not restore a cursor's hidden state
The repro steps were this:
1. run an sdl2 winrt/uwp app, on Win10, v10.0.10586.0 or higher
2. hide the cursor, via a call to SDL_ShowCursor(0)
3. make the Win10 game bar appear, by pressing the Windows + G hotkey
4. observe that the mouse cursor appears, in order to interact with the
   game bar (this is expected behavior)
5. make the Win10 game bar disappear, either by pressing the Windows + G hotkey
   again, or clicking somewhere in the app

EXPECTED RESULT: cursor disappears, as game bar disappears

ACTUAL RESULT: cursor didn't always disappear
2016-08-20 13:46:45 -04:00
Ryan C. Gordon
d05ae1941c emscripten: send fake mouse events for touches, like other targets do.
(This really should be handled at the higher level and not in the individual
targets, but this fixes the immediate bug.)
2016-08-12 19:59:00 -04:00
Ryan C. Gordon
6f4bcd2498 audio: Renamed some internal driver symbols in various targets. 2016-08-11 22:22:09 -04:00
Philipp Wiesemann
82c94a3f79 PSP: Fixed memory leak if video init failed. 2016-08-03 22:32:20 +02:00
Philipp Wiesemann
9f97ee8a85 WinRT: Removed not needed SDL_zerop() after SDL_calloc().
SDL_calloc() already sets memory to zero.
2016-08-03 22:32:02 +02:00
Philipp Wiesemann
8d6cbdd235 Pandora: Fixed memory leak in video implementation. 2016-07-20 21:00:52 +02:00
Philipp Wiesemann
53ac57128b Pandora: Fixed compile warnings in video implementation (thanks, Bombo!).
Fixes Bugzilla #2734.
2016-07-20 21:00:36 +02:00
Philipp Wiesemann
562926cdda Pandora: Fixed SDL version in debug output. 2016-07-19 21:02:09 +02:00
Philipp Wiesemann
d478f26ef4 Updated comments in video implementations. 2016-07-18 22:03:47 +02:00
Philipp Wiesemann
c8cd5c559a Pandora: Fixed compile error in video implementation (thanks, Bombo!).
Partially fixes Bugzilla #2734.
2016-07-18 22:02:17 +02:00
Brandon Schaefer
eadb30cd6f MIR: Fix system cursors. Been broken since custom cursor support was added! 2016-07-13 07:07:08 -07:00
Philipp Wiesemann
495057b04b Android: Added new key codes from API 24. 2016-07-09 22:06:00 +02:00
Alex Szpakowski
d0bd0e4855 iOS: Fix an OpenGL ES error when rotating the device if MSAA is used (thanks Cole Campbell!)
Fixes bug #3378.
2016-07-02 13:38:31 -03:00
Philipp Wiesemann
6ec5e64056 Fixed freeing strings created by strdup() with SDL_free().
This only worked on platforms where SDL_free() wraps free().
2016-06-28 21:08:23 +02:00
Philipp Wiesemann
2f016cf88d Mac: Fixed crash if SDL_GetDisplayDPI() got NULL pointers for output parameters. 2016-06-26 21:08:57 +02:00
Brandon Schaefer
4a339a46ec MIR: Add better error handling for a failed connection 2016-06-08 08:01:21 -07:00
Brandon Schaefer
f0708fc9dd MIR: Support relative mouse mode 2016-06-07 09:01:23 -07:00
Alex Szpakowski
ea2f5e5930 Windows: Fix other window positions/sizes being changed when exiting exclusive fullscreen (bug #3315, thanks Simon Hug!) 2016-05-23 15:29:25 -03:00
Alex Szpakowski
0a4085a048 Mac: Fix a crash when SDL is compiled with SDL_MAC_NO_SANDBOX enabled, by increasing the stack size of the mouse tap thread back to OS X' default of 512 KB. 2016-05-21 12:09:23 -03:00
Alex Szpakowski
4a468739f8 Removed Mac OS 10.5 support (bug #3137). Also fixed a warning about deprecated Carbon code when using SDL_audio (bug #3127, thanks Dominik!) 2016-05-21 00:20:52 -03:00
Philipp Wiesemann
d4140ca473 Windows: Fixed missing error message if SDL_GetDisplayDPI() failed. 2016-05-20 22:15:58 +02:00
Philipp Wiesemann
d7b9d321fa X11: Fixed typos in error messages and source comments. 2016-05-20 22:15:28 +02:00
Philipp Wiesemann
81235118ab X11: Fixed missing error message if SDL_GetDisplayDPI() failed. 2016-05-20 22:14:40 +02:00
David Ludwig
441359bd5a WinRT: workaround a possible Windows bug, whereby hiding cursors, disables mouse-moved events
This workaround, unfortunately, requires that apps directly link to a set of
Win32-style cursor resource files (that contain a transparent cursor image).
Copies of suitable resource files are in src/core/winrt/, and should be
included directly in an app's MSVC project.

A rough explanation of this workaround/hack, and why it's needed (and
seemingly can't be done through programmatic means), is in this change's code.
2016-05-14 23:29:49 -04:00
Philipp Wiesemann
e964d00f64 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.
2016-05-11 21:11:12 +02:00
Philipp Wiesemann
748b05289c EGL: Fixed SDL_GL_GetSwapInterval() returning -1 on error.
It should return 0 as a safe default on errors. -1 is returned for late swaps.
2016-05-11 21:10:41 +02:00
Philipp Wiesemann
bf7a76155e Fixed missing error message if SDL_GetDisplayDPI() is unsupported. 2016-05-10 21:14:36 +02:00
David Ludwig
52fec6aff0 WinRT: allow on-screen keyboard to be shown via SDL APIs, Win10/UWP only 2016-05-07 21:41:59 -04:00
Alex Szpakowski
b15efce277 Cocoa mouse code: Replaced NSPointInRect with NSMouseInRect (thanks Eric Wasylishen!) Fixes bug #3312. 2016-05-01 21:41:30 -03:00
Alex Szpakowski
d383502657 Mac: replaced a deprecated CGSetLocalEventsSuppressionInterval call that I missed in commit 2f72bdfee9bb 2016-05-01 19:51:10 -03:00
Philipp Wiesemann
31cbb34ec9 Wayland: Removed not needed including and setting of errno.
One internal function was setting errno on error but it was not read afterwards.
2016-04-14 21:11:43 +02:00
David Ludwig
caf152def7 WinRT: build/link fix 2016-04-13 21:59:50 -04:00
Ryan C. Gordon
9b4db2b8aa Patched to compile on various platforms. 2016-04-12 18:11:36 -04:00
Ryan C. Gordon
c61675dc5d threads: Move SDL's own thread creation to a new internal API.
This allows us to set an explicit stack size (overriding the system default
and the global hint an app might have set), and remove all the macro salsa
for dealing with _beginthreadex and such, as internal threads always set those
to NULL anyhow.

I've taken some guesses on reasonable (and tiny!) stack sizes for our
internal threads, but some of these might turn out to be too small in
practice and need an increase. Most of them are simple functions, though.
2016-04-12 16:45:10 -04:00
Alex Szpakowski
34f095e098 iOS: Fixed SDL_GL_CreateContext crashing instead of returning null when a GLES3 context is requested on iOS 6 and older. 2016-04-10 22:07:10 -03:00
Alex Szpakowski
6cfa71a10e iOS: Also do the Dictation crash workaround before executing the animation callback. 2016-04-02 13:21:01 -03:00
Alex Szpakowski
88372277b7 Add a new hint SDL_HINT_MAC_MOUSE_FOCUS_CLICKTHROUGH, which allows mouse click events to occur when clicking to focus a window in Mac OS X.
Fixes bug #3300.
2016-04-02 11:54:05 -03:00
Alex Szpakowski
5520ed9cc2 iOS: Workaround for a crash after Dictation is used. 2016-04-01 19:18:50 -03:00
Philipp Wiesemann
12c78c5ca5 PSP: Fixed missing error message for unsupported SDL_CreateWindowFrom(). 2016-04-01 21:11:31 +02:00
Philipp Wiesemann
a9edc5137e Wayland: Fixed missing error message if creating a custom cursor failed.
SDL_GetError() returned no error message because it was written to stderr only.
2016-03-28 21:03:04 +02:00
Alex Szpakowski
08488e6d34 Mac: avoid calling CGSetLocalEventsSuppressionInterval, it was deprecated in OS X 10.6. 2016-03-20 15:35:34 -03:00
Philipp Wiesemann
35da130828 Wayland: Fixed crash if memory mapping failed while creating a custom cursor. 2016-03-16 22:09:39 +01:00
Philipp Wiesemann
fa77df4e91 Wayland: Fixed storing a theme cursor which is never used in video data. 2016-03-16 22:09:23 +01:00
Sam Lantinga
a29a925d7e Pick up new display mode information after a mode change (Windows only right now). 2016-03-11 08:33:47 -08:00
Philipp Wiesemann
19f18558ac Emscripten: Deactivated custom cursor support because it created system cursors. 2016-03-11 22:10:35 +01:00
Philipp Wiesemann
676041aa16 Wayland: Fixed drawing created cursors without transparency. 2016-03-11 22:10:15 +01:00
Philipp Wiesemann
167dd4a1fa Wayland: Fixed showing created cursors incorrectly before the first redraw. 2016-03-11 22:09:50 +01:00
Philipp Wiesemann
0c923fda0b WinRT: Removed dead code and fixed memory leak if allocation for driver failed. 2016-03-10 21:00:44 +01:00
Ryan C. Gordon
f647dfe874 x11: Fix a few more XMoveWindow() calls to adjust for border size.
Also, fix my inability to do basic math ('+' should have been '-').
2016-03-04 19:41:16 -05:00
Ryan C. Gordon
02f49fdb53 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.
2016-03-04 18:47:19 -05:00
Philipp Wiesemann
05b6ca3c35 Raspberry: Fixed crash if memory allocation for cursor failed. 2016-03-03 20:12:51 +01:00
Philipp Wiesemann
be34036ed7 Wayland: Fixed fault in event handling which might have caused a crash someday.
Found by Cppcheck.
2016-03-02 20:25:23 +01:00
Philipp Wiesemann
ab8be04310 Wayland: Fixed crash if allocating memory for cursor failed.
Also added missing error message if first allocation failed.
2016-03-02 20:25:09 +01:00
Jonas ?dahl
3a22321d55 wayland: Add wl_proxy_marshal_constructor_versioned sym
wl_proxy_marshal_constructor_versioned was introduce in wayland-client 1.10.
2016-02-17 15:14:20 +08:00
Brandon Schaefer
90ef601d8c Mir: Do not use opengl to find the valid pixel format if we dont use opengl 2016-02-25 10:06:33 -08:00
Philipp Wiesemann
966aa3721b Mir: Replaced memcpy() with SDL_memcpy(). 2016-02-24 21:07:19 +01:00
Philipp Wiesemann
b4b36122a4 Mir: Fixed comment at conditional compilation macro. 2016-02-24 21:06:46 +01:00
Philipp Wiesemann
92209c260d Mir: Fixed crash if allocating memory for cursor failed. 2016-02-22 19:00:22 +01:00
bschaefer
3607d3b756 Fix API/ABI breakage in Mir 0.13/0.14. 2016-02-21 15:19:35 -08:00
Ryan C. Gordon
2436ca200d x11: better fix for the previous commit's fullscreen vs maximized issue. 2016-02-20 01:03:39 -05:00
Ryan C. Gordon
a4627c5eda x11: Don't mess with fullscreen vs maximized window state on unmapped windows. 2016-02-20 00:44:42 -05:00
Ryan C. Gordon
df4be2f200 x11/wayland/mir: Make the dynamic loading macro salsa a little less messy. 2016-02-18 23:27:58 -05:00
Ryan C. Gordon
0e2badc144 x11: Patched to compile with DEBUG_XEVENTS on C89 compilers. 2016-02-12 00:27:21 -05:00
Ryan C. Gordon
45407d0eac 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.
2016-02-15 21:49:09 -05:00
Philipp Wiesemann
7da168db0a Fixed spaces in license comments. 2016-02-10 19:31:23 +01:00
Ryan C. Gordon
5ed63ae317 x11: Updated imKStoUCS.* to latest from x.org.
This was a version from XFree86 before now.  :)  Although not much has
changed.
2016-02-08 01:08:21 -05:00
Alex Szpakowski
8e7cd6b5da iOS: Implemented clipboard support. 2016-02-03 20:32:55 -04:00
Alex Szpakowski
325921789a x11: Fix AltGr generating an invalid keycode (bug #3244). Thanks Thomas! 2016-01-31 09:39:42 -04:00
Sam Lantinga
67f9fd2bc4 Fixed creating fullscreen windows on Steam Link 2016-01-22 13:12:16 -08:00
Sam Lantinga
e5d575b933 Expose the EGL display and window for Vivante SDL windows 2016-01-16 21:58:49 -08:00
Philipp Wiesemann
8d035b1aee Android: Added mouse initialization to reset state.
If the app is launched again then the shared object may be reused (on Android).
2016-01-12 22:23:00 +01:00
Philipp Wiesemann
1560351905 Android: Added mapping of mouse forward button and mouse back button. 2016-01-11 20:02:48 +01:00
Alex Szpakowski
87ea39be84 Removed dead code (caught by Clang's static analyzer). 2016-01-09 17:41:09 -04:00
Ryan C. Gordon
ed62033366 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.
2016-01-07 19:58:00 -05:00
Ryan C. Gordon
416d046663 Mac: Implemented SDL_GetDisplayDPI (thanks, Kirill!).
Fixes Bugzilla #3223.
2016-01-07 14:02:37 -05:00
Ryan C. Gordon
49e47688b4 Patched to compile on iOS. 2016-01-05 05:38:55 -05:00
Ryan C. Gordon
eeb899999f Patched to compile. 2016-01-05 05:22:35 -05:00
Ryan C. Gordon
7605ccf68a Use SDL's stdinc functions instead of C runtime calls. 2016-01-05 02:29:16 -05:00
Ryan C. Gordon
dc532c70e8 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.
2016-01-05 02:27:50 -05:00
Ryan C. Gordon
aa4952fdef Added SDL_WINDOWEVENT_HIT_TEST.
This lets windows know when they are dropping a mouse event because their
hit test reported something other than SDL_HITTEST_NORMAL. It lets them know
exactly where in the event queue this happened.

This patch is based on work in Unreal Engine 4's fork of SDL,
compliments of Epic Games.
2015-04-21 10:10:59 -04:00
Ryan C. Gordon
d4aedf9951 Added SDL_SetWindowModalFor().
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.
2015-04-21 09:45:58 -04:00
Ryan C. Gordon
e497e46515 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.
2016-01-05 02:28:56 -05:00
Ryan C. Gordon
3bdaf4c611 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.
2016-01-05 02:46:10 -05:00
Ryan C. Gordon
5696e88e6b 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.
2016-01-05 02:29:06 -05:00
Ryan C. Gordon
f9af0c0376 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.
2016-01-05 02:27:26 -05:00
Ryan C. Gordon
8e855f2fbc 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.
2016-01-05 01:42:00 -05:00
Ryan C. Gordon
f2defe5e11 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.
2016-01-05 01:30:40 -05:00
Ryan C. Gordon
f9b7379341 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.
2016-01-05 02:26:45 -05:00
Ryan C. Gordon
c3114975db Added SDL_GetDisplayUsableBounds(). 2016-01-04 23:52:40 -05:00
Ryan C. Gordon
8875a4014f 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.
2015-04-22 16:50:48 -04:00
Ryan C. Gordon
14e007772a x11: window managers might mark windows as FULLSCREEN _and_ MAXIMIZED.
This patch came from Unreal Engine 4's fork of SDL, compliments of Epic Games.
2015-04-21 10:14:17 -04:00
Ryan C. Gordon
9a7527988a x11: Workaround window managers that mark fullscreen windows as maximized.
This patch came from Unreal Engine 4's fork of SDL, compliments of Epic Games.
2015-04-21 01:22:32 -04:00
Ryan C. Gordon
81209acbd8 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.
2016-01-04 23:44:27 -05:00
Ryan C. Gordon
f9d478b6c3 x11: _NET_WM_PID needs a long, not a pid_t, I think. 2016-01-05 02:40:14 -05:00
Ryan C. Gordon
0c0ce2096c Updated comment: this is the correct way to do fullscreen on X11 now. 2015-04-21 10:19:20 -04:00
Ryan C. Gordon
e0e04542d0 Added a few FIXMEs. 2015-04-21 09:46:48 -04:00
Ryan C. Gordon
15bc7aea64 Mac: allows apps to use OpenGL on a slower, integrated GPU.
This is often useful for SDL apps that aren't meant to be games: the
integrated GPU starts up faster, uses less power, and is often more than
fast enough.

Note that even with this change, the app will still default to the more
powerful, discrete GPU if one is available; an app that prefers the integrated
GPU will still need the NSSupportsAutomaticGraphicsSwitching key properly
set in its Info.plist and Mac OS X 10.7 or later.

https://developer.apple.com/library/mac/qa/qa1734/_index.html
2016-01-04 22:00:04 -05:00
Ryan C. Gordon
7678b1db88 Patch to compile on C89 compilers. 2016-01-04 16:36:42 -05:00
Ryan C. Gordon
6df5e1e535 x11: Support _NET_WM_USER_TIME and give _NET_ACTIVE_WINDOW a valid timestamp.
Fixes Bugzilla #3056.
2016-01-04 16:25:27 -05:00
Ryan C. Gordon
fa8c83c1c1 Remove almost all instances of "volatile" keyword.
As Tiffany pointed out in Bugzilla, volatile is not useful for thread safety:

https://software.intel.com/en-us/blogs/2007/11/30/volatile-almost-useless-for-multi-threaded-programming/

Some of these volatiles didn't need to be, some were otherwise protected by
spinlocks or mutexes, and some got moved over to SDL_atomic_t data, etc.

Fixes Bugzilla #3220.
2016-01-03 06:50:50 -05:00
Sam Lantinga
68a3272852 Fixed sed error on Mac OS X and updated copyright on a few last files 2016-01-02 10:38:51 -08:00
Sam Lantinga
42065e785d Updated copyright to 2016 2016-01-02 10:10:34 -08:00
David Ludwig
44c0b2da87 WinRT: minor code-comment cleanups 2015-12-31 01:54:11 -05:00
David Ludwig
854cf7ac40 Fixed Bug 3215 - Win32: 'fullscreen' app doesn't always extend to top of screen 2015-12-30 12:44:13 -05:00
Philipp Wiesemann
c41feca5de Fixed a crash if creating accelerated renderer after accessing window surface.
Partially fixes Bugzilla #3196.
2015-12-29 19:13:56 +01:00
Ryan C. Gordon
18c7d6df21 XRandR: fixed primary output detection logic (thanks, "winterknight"!).
Fixes Bugzilla #3185.
2015-12-29 02:16:14 -05:00
Ryan C. Gordon
326b357804 Mac: don't ignore mouse clicks on the top pixel of a window (thanks, Joshua!).
Fixes Bugzilla #3190.
2015-12-29 01:09:58 -05:00
Ryan C. Gordon
51c1d69d13 Mac: Whoops, lost legit Caps lock keypress events. Fixed. 2015-12-28 13:30:58 -05:00
Ryan C. Gordon
fd6b435c6a Windows: resync num/caps lock when window is gaining focus. 2015-12-28 13:08:19 -05:00
Ryan C. Gordon
257b7af247 Sync up the caps/numlock state properly without sending key events.
Partially fixes Bugzilla #2736 and #3125.
2015-12-28 13:07:44 -05:00
Ryan C. Gordon
d3b323f89d Mac: Fix keyboard state if capslock was toggled while app wasn't in foreground. 2015-12-27 23:39:43 -05:00
Ryan C. Gordon
2befe01d39 Removed a tabstop. 2015-12-27 18:56:46 -05:00
Ryan C. Gordon
6a2e8a7a90 Win: make sure SDL keyboard state reflects system capslock state at startup. 2015-12-27 18:48:14 -05:00
Ryan C. Gordon
faed05850e Mac: make sure SDL keyboard state reflects system capslock state at startup. 2015-12-27 16:46:12 -05:00
David Ludwig
8281cc72ba WinRT: Fixed bug 3210, "alt-tab doesn't work correctly with full-screened, UWP (Win10 Store) apps" 2015-12-22 00:58:47 -05:00
Alex Szpakowski
4026980917 Cleaned up some code formatting. 2015-12-18 00:49:27 -04:00
Alex Szpakowski
a2235d7b29 Cocoa: Use NSTextInputClient instead of NSTextInput for text input handling. The latter was deprecated in OS X 10.6. 2015-12-10 22:17:22 -04:00
Alex Szpakowski
0c463d770b SDL_GL_GetAttribute: If a GL context isn't active, only return failure when the specified attribute needs an active GL context to be queried. 2015-12-10 20:25:34 -04:00
David Ludwig
976bc9a919 WinRT: build fix for Windows Phone 8.0 2015-12-06 18:48:46 -05:00
David Ludwig
2b48481879 WinRT: enabled the Win10-Store Cert Kit bug-workaround, for Windows 8.0 apps 2015-12-06 18:42:30 -05:00
David Ludwig
a40d49aa1c WinRT: enabled the Win10-Store Cert Kit bug-workaround, for Windows 8.1 apps 2015-12-06 18:33:43 -05:00
David Ludwig
898054a179 WinRT: fixed a build error when compiling Windows 8.1 .dlls 2015-12-06 17:32:33 -05:00
David Ludwig
c8e3bfbf54 WinRT: removed an unused variable from DXGI-based display-detection code 2015-12-06 17:07:37 -05:00
David Ludwig
781455fd8b WinRT: workaround for a possible bug in the Win10 Store's Certification Kit
DXGI fails to report any displays in at least one of the
"Windows App Certification Kit 10.0"'s tests for Store Apps.  This was
causing SDL's video initialization code to fail, when the suspect test
("Direct3D Feature Test") was run, as DXGI was unable to report a
display-output at adapter-index 0, output-index 0.

The workaround that is applied here attempts to detect this case, then
use a hopefully-reasonable alternative means to calculate at least one
display output.
2015-12-06 17:06:40 -05:00
Philipp Wiesemann
57f2f3baf3 Windows: Added missing NULL check after SDL_stack_alloc().
SDL_stack_alloc() might wrap SDL_malloc() which can return NULL.
2015-12-06 17:51:11 +01:00
Philipp Wiesemann
32147ba780 X11: Fixed memory leak when initializing multiple screens. 2015-12-05 17:08:07 +01:00
Alex Szpakowski
6a50d33385 Removed some debug prints. 2015-11-30 03:30:35 -04:00
Alex Szpakowski
9ddc6c3441 Mac: Fixed SDL_SetWindowFullscreen not restoring the window's original size when exiting a Space. 2015-11-30 03:30:07 -04:00
David Ludwig
25abce513d WinRT: added Win10/UWP (Universal Windows Platform) support
"UWP" appears to be Microsoft's new name for WinRT/Windows-Store APIs.

This set of changes updates SDL's WinRT backends to support the Win10 flavor
of WinRT.  It has been tested on Win10 on a desktop.  In theory, it should
also support Win10 on other devices (phone, Xbox One, etc.), however further
patches may be necessary.

This adds:
- a set of MSVC 2015 project files, for use in creating UWP apps
- modifications to various pieces of SDL, in order to compile via MSVC 2015 +
  the Win10 API set
- enables SDL_Window resizing and programmatic-fullscreen toggling, when using
  the WinRT backend
- WinRT README updates
2015-11-29 19:33:11 -05:00
David Ludwig
d07aa877d2 WinRT: minor code cleanup in window-creation code
Window flags can be detected on all WinRT platforms.
2015-11-26 11:15:43 -05:00
David Ludwig
a70fe9a53e WinRT: native windows are inherently resizable (in WinRT 8.x) 2015-11-26 11:09:50 -05:00
David Ludwig
7bd640d5da WinRT: bug-fix, fullscreen mode wasn't getting reported in Windows 8.0 apps
This bug did not occur in Windows 8.1 apps, just Windows 8.0.
2015-11-26 02:37:51 -05:00
David Ludwig
36090f576f WinRT: bug-fix, OpenGLES2 was failing to init, after recent windowing fixes
Some SDL_Window flags were getting lost inside WINRT_UpdateWindowFlags, namely
SDL_WINDOW_OPENGL.
2015-11-26 02:13:15 -05:00
David Ludwig
f520994455 WinRT: bug-fix, fullscreen window flags weren't set if device was rotated 90 degrees 2015-11-26 01:36:36 -05:00
David Ludwig
623898f70b WinRT: lots of display and windowing related fixes
This change-set fixes a lot of windowing related bugs, especially with
regards to Windows 8.x apps running on Windows 10 (which was the driver for
this work).  The primary fixes include:
* listed display modes were wrong, especially when launching apps into a
  non-fullscreen space
* reported window flags were often wrong, especially on Windows 10
* fullscreen/windowed mode switches weren't failing (they are not
  programmatically possible in Win 8.x apps).
2015-11-26 00:41:39 -05:00
Ryan C. Gordon
5224dfcc9a X11: Let XRandR respect multiple screens (DISPLAY=:0.0 vs :0.1, etc). 2015-11-17 12:15:35 -05:00
Alex Szpakowski
998a54f9c5 Mac: Fix a warning about implicit declaration of SDL_SendKeymapChangedEvent (bug #3167.) 2015-11-14 04:24:39 -04:00
Alex Szpakowski
9c51c4a639 Mac: Detect the d-pad and pause buttons on Steelseries MFi gamepads (bug #3124.) 2015-11-12 22:44:32 -04:00
Alex Szpakowski
7267835842 iOS: Fixed crashes when rotating the screen after destroying a window. 2015-11-12 20:58:11 -04:00
Sam Lantinga
5103ae9fd6 one last SDL fix: restore menu bar if we destroy a fullscreen window without transitioning it back to a non-fullscreen window first 2015-11-09 08:55:07 -08:00
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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