Send the fake warp coordinates when emulating warps with relative mode to ensure that it appears that the cursor is always reset to where the application expects it to be.
Fixes cases where games can continue moving the camera if the mouse is lifted during motion.
(cherry picked from commit 8fcbf972c6)
Cursor visibility in the SDL input layer only reflects whether ShowCursor/HideCursor was called. In the case of relative mode, the cursor can be hidden, but the SDL_Mouse visibility flag will be true.
Track cursor visibility separately in the X11 driver. Fixes the cursor becoming visible when using the warping relative mode with XWayland.
(cherry picked from commit b0713a7d30)
(cherry picked from commit 5b57573439)
- Begining of device ID with 0 violates the SDL's specification that means the 0 is an error, invalid, failure, etc. But on Vita here it's an actual device...
- Replacing 0 and 1 with 1 and 2 to resolve this violation.
(cherry picked from commit dd6c663918)
* Removed window movement to left top corner that breaks secondary screens on KMSDRM
(cherry picked from commit ce98550cbb)
(cherry picked from commit 586a2dc721)
The structure of the existing loop makes the inner loop of the previous commit unnecessary.
Manual backport of 558630d59c
(cherry picked from commit 62f35ab1b6)
This prevents continuing a rumble after the first one fails, and fixes a long standing crash issue if rumble is started immediately before the controller is disconnected.
Thanks to @AntTheAlchemist for the key bug report that showed what was happening here.
Fixes https://github.com/libsdl-org/SDL/issues/10422
(cherry picked from commit 0a924b185d)
(cherry picked from commit 7fdf794377)
This prevents race conditions and divide by zero if multiple threads start using the time functions simultaneously.
(cherry picked from commit b378bc5c83)
This commit fixes the attribute list in the WGL and GLX code when requesting a floating point pixel format. The name of the attribute was missing in the list.
Fixes libsdl-org#10189
(cherry picked from commit 9389712917)
(cherry picked from commit 58e179c8b5)
Add a loop around SDL_hid_read() in the Steam Deck HIDAPI driver as it
is done in other HIDAPI drivers. This loop reads data from the device and
processes it until the input buffer is empty which ensures that clients
always get the latest data.
This fixes an input latency issue if the application polls the events
slower than the hardware generates them.
(cherry picked from commit 22770e6496)
The CRC is used to distinguish between different controllers that have the same VID/PID, so if the CRC doesn't match, it's probably a different controller that we don't know about.
Fixes https://github.com/libsdl-org/SDL/issues/9265
(cherry picked from commit 30e93b40c2)
(cherry picked from commit b8daf14fe5)
This changes the `SDL_EVENTS_DISABLED` path's return value from SDL_DISABLE
to SDL_IGNORE to match expectations, but doesn't actually change the ABI,
since these two symbols are both zero.
Fixes https://github.com/libsdl-org/sdlwiki/issues/460
(cherry picked from commit 7d60ff9965)
On Android, HIDAPI prompts for permissions and acquires exclusive access to the device, and on Apple mobile platforms it doesn't do anything except for handling Bluetooth Steam Controllers.
Fixes https://github.com/libsdl-org/SDL/issues/9241
(cherry picked from commit e3cf2e4794)
(cherry picked from commit 66054a6515)