Commit Graph

276 Commits

Author SHA1 Message Date
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