Commit Graph

371 Commits

Author SHA1 Message Date
Philipp Wiesemann
9d6978bb0d Removed empty statement. 2016-11-05 21:22:39 +01:00
Ryan C. Gordon
d97c80cfb6 Added some debug logging to print out every event added to the SDL queue. 2016-11-03 01:29:56 -04:00
Philipp Wiesemann
87cfc93765 Linux: Added missing scancodes. 2016-10-16 22:47:49 +02:00
Philipp Wiesemann
d9c3e4e4a8 Linux: Fixed mixed up scancodes. 2016-10-09 20:31:04 +02:00
Sam Lantinga
496ebf193c Implemented SDL_GetHintBoolean() to make it easier to check boolean hints 2016-10-07 23:40:44 -07:00
Alex Baines
63ed6395b9 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
Sam Lantinga
2ef93020b8 Fixed bug 3022 - SDL_UnlockMutex(SDL_EventQ.lock) in SDL_PeepEvents can cause error when lock is null 2016-10-07 17:58:02 -07:00
Sam Lantinga
81f783a6d2 Fixed bug 3161 - SDL_WINDOWEVENT_EXPOSED event possible queue overflow
Marcel Bakker

Observed when resizing or moving a window in Windows 7.

Depending on how you resize/move your window
, you may receive none or a lot of SDL_WINDOWEVENT_EXPOSED events
, at the moment you release the mouse button.

Maybe add this event to an already existing list of overflow candidates ?
2016-10-01 13:38:30 -07:00
Philipp Wiesemann
c0a8d0d611 Fixed crash if allocating memory for mouse clicks failed. 2016-09-30 23:30:54 +02:00
Alex Szpakowski
040949ec05 Use OS-provided click counts on macOS and iOS for mouse press and release events. 2016-09-24 18:46:34 -03:00
Philipp Wiesemann
a05b10f62a Fixed comment in gesture source. 2016-03-27 22:22:13 +02:00
Sam Lantinga
805ea10448 Fixed infinite timeout in SDL_WaitEventTimeout() - thanks Константин Гончарик 2016-03-08 13:55:50 -08:00
Sam Lantinga
f630e1922b Return the full number of events from SDL_PeepEvents() if NULL is passed in with SDL_PEEKEVENT 2016-01-31 11:29:11 -08:00
Ryan C. Gordon
7e3ed918dd Fixed NULL dereference on drop events with no window associated.
(such as when dropping a file onto an app's icon to launch.)

This bug caught by Clang's static analyzer.
2016-01-07 16:01:24 -05:00
Ryan C. Gordon
e83e190025 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
4711bc9d8b 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
0e7135739a 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
41012240cc 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
255c182471 Updated copyright to 2016 2016-01-02 10:10:34 -08:00
Ryan C. Gordon
0becd46878 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
David Ludwig
e1804d186e Fixed bug 3202 - Fix renderer visibility on a window maximized directly from the minimized state
Many thanks to id.zeta for details on the bug, and for the fix!
2015-12-27 17:55:45 -05:00
Sam Lantinga
0890e055d2 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
Ryan C. Gordon
fd638d4de7 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
8983b729c2 Removed redundant variable check when processing gestures. 2015-07-01 21:10:54 +02:00
Philipp Wiesemann
847b6cbfc5 Fixed crash if allocation for touch device failed.
If the allocation of an SDL_Touch failed, the number of touch devices was still
increased. Later access of the SDL_Touch would then have dereferenced the NULL.
2015-06-12 21:10:31 +02:00
Ryan C. Gordon
3c9cb3d710 Unix: Don't send quit events during signal handler.
Make note to send it, and send next time we SDL_PumpEvents().

Otherwise, we might be trying to use malloc() to push a new event on the
queue while a signal is interrupting malloc() elsewhere, usually causing a
crash.

Fixes Bugzilla #2870.
2015-06-08 01:52:43 -04:00
Philipp Wiesemann
b4626634fe Fixed comments at conditional compilation macros. 2015-06-05 19:41:18 +02:00
Sam Lantinga
7d3de7e48c Fixed bug 2096 - Mapping from scancode to keycode doesn't work for remapped modifier keys
Jacob Lee

If a user has a non-standard keyboard mapping -- say, their caps lock key has been mapped to Ctrl -- then SDL_GetModState() is no longer accurate: it only considers the unmapped keys. This is a regression from SDL 1.2.

I think there are two parts to this bug: first, GetModState should use keycodes, rather than scancodes, which is easy enough.

Unfortunately, on my system, SDL considers Caps Lock, even when mapped as Control, to be both SDL_SCANCODE_CAPSLOCK and SDLK_CAPSLOCK. The output from checkkeys for it is:

INFO: Key pressed :  scancode 57 = CapsLock, keycode 0x40000039 = CapsLock  modifiers: CAPS

Whereas the output for xev is:

KeyPress event, serial 41, synthetic NO, window 0x4a00001,
    root 0x9a, subw 0x0, time 40218333, (144,177), root:(1458,222),
    state 0x10, keycode 66 (keysym 0xffe3, Control_L), same_screen YES,
    XKeysymToKeycode returns keycode: 37
    XLookupString gives 0 bytes:
    XmbLookupString gives 0 bytes:
    XFilterEvent returns: False

I think the problem is that X11_UpdateKeymap in SDL_x11keyboard.c only builds a mapping for keycodes associated with a Unicode character (anything where X11_KeyCodeToUcs returns a value). In the case of caps lock, SDL scancode 57 becomes x11 keycode 66, which becomes x11 keysym 65507(Control_L), which does not have a unicode value.

To fix this, I suspect that SDL needs a mapping of the rest of the x11 keysyms to their corresponding SDL key codes.
2015-05-28 12:48:20 -07:00
Ryan C. Gordon
51794a6b76 Added some unknown keys from Japanese 106/109 keyboards (thanks, "ver0hiro"!).
This adds them for Windows and X11.

Fixes Bugzilla #2820.
2015-05-26 20:55:03 -04:00
Sam Lantinga
78f2198e6c Updated the copyright year to 2015 2015-05-26 06:27:46 -07:00
Wander Lairson Costa
1051eadb7a Add an entry for X11 "/" key for Brazilian keyboard.
SDL2 reports the following message when we type the "/" on br-abnt2 keyboards:

The key you just pressed is not recognized by SDL. \
To help get this fixed, please report this to the SDL mailing list \
<sdl@libsdl.org> X11 KeyCode 97 (89), X11 KeySym 0x2F (slash).

That's because the corresponding entry in the scancodes table is
marked with value SDL_SCANCODE_UNKNOWN.

This commit fixes that adding the value SDL_SCANCODE_SLASH for this entry.
2014-06-05 11:55:37 -03:00
Ryan C. Gordon
be4c21fb36 Make loading/saving dollar gesture templates endian clean (thanks, Martin!).
Fixes Bugzilla #2674.
2015-04-05 18:59:52 -04:00
Ryan C. Gordon
89f2975b53 Add some SDL_SetError() calls to the dollar gesture code (thanks, Martin!).
Fixes Bugzilla #2673.
2015-04-05 18:44:24 -04:00
Sam Lantinga
97094ebd2b Fixed relative mouse motion moving farther and farther off screen. 2015-03-30 11:31:53 -07:00
Ryan C. Gordon
c691d4b44a Keep track of maximum number of events in-flight in the SDL queue at once. 2015-03-25 10:19:10 -04:00
Ryan C. Gordon
de7c61b314 Patched to compile on C89 compilers. 2015-03-24 14:40:31 -04:00
Ryan C. Gordon
effac13a3f Make the signal handler hint more generic. 2015-03-24 14:36:36 -04:00
Ryan C. Gordon
e2b33306a0 Added a hint to prevent SDL from installing signal handlers.
Fixes Bugzilla #2431.
2015-03-24 14:29:25 -04:00
Philipp Wiesemann
a04c07ba83 Fixed three memory leaks on failed allocation. 2015-02-08 21:25:37 +01:00
Edward Rudd
835d487683 add in support for passing down the "natural" (or flipped) scrolling direction in the MouseWheelEvent event 2014-12-03 11:00:56 -05:00
Sam Lantinga
67cbb818a0 Fixed spurious SDL error on shutdown if mouse capture isn't supported 2014-10-15 09:11:15 -07:00
Sam Lantinga
8c027a3cbe Fixed compiler warnings on iOS 2014-07-07 11:00:25 -07:00
Sam Lantinga
0da7ddd120 Fixed mingw64 build and warnings 2014-07-07 10:26:28 -07:00
Gabriel Jacobo
eaa8a2244a Another fix to prevent dereferencing a null window pointer in SDL_mouse.c 2014-06-28 12:50:17 -03:00
Gabriel Jacobo
5dfa75f0a9 Fixes #2611 #2610, Touch events cause crash on Android, thanks Alvin & Sylvain
This bug was introduced on this rev: https://hg.libsdl.org/SDL/rev/dc80dc0bd22e
2014-06-28 12:36:44 -03:00
Ryan C. Gordon
9edf407bde Whoops, lost this in the merge. 2014-06-25 17:20:22 -04:00
Ryan C. Gordon
e59e44ff6b Merged Ryan's SDL-gui-backend branch.
Adds three APIs, and implements them on X11, Cocoa, and Windows:

- SDL_CaptureMouse()
- SDL_GetGlobalMouseState()
- SDL_SetWindowHitTest()
2014-06-25 17:06:12 -04:00
Ryan C. Gordon
25c056b0ae Changed SDL_GetAbsoluteMouseState() to SDL_GetGlobalMouseState().
This matches naming conventions in the main repository, between
 SDL_GetRelativeMouseState() and SDL_WarpMouseGlobal().
2014-06-25 16:16:55 -04:00
Sam Lantinga
8158b5baa0 Partial fix for bug 2556 - add compilation flag -Wshadow
I added -Wshadow and then turned it off again because of massive variable shadowing in the blit macros.

Feel free to go through that code and fix these if you want. Just uncomment CheckWarnShadow in configure.in if you want to try this.
2014-06-22 11:02:56 -07:00
Ryan C. Gordon
8f8eddd27f Removed SDL_SYS_JoystickNeedsPolling().
It was simpler to just have the polling (actually: hotplug detection)
 functions return immediately if it's not an appropriate time to poll.

Note that previously, if any joystick/controller was opened, we would poll
 every time anyhow, skipping this function.
2014-06-14 23:31:23 -04:00