This better reflects the actual implementation and makes SDL_HINT_ENABLE_SCREEN_KEYBOARD work on Android.
Fixes https://github.com/libsdl-org/SDL/issues/8652
(cherry picked from commit 014a63b4b5b94ce50f329eddb345f5434654305b)
The udev container issue is mostly to do with device notifications
and netlink. The device classification stuff just pokes file in /sys
and /run/udev. Doesn't hurt to try it first for classifying joysticks
and then fall to the guess heuristics if it fails.
XInputGetCapabilitiesEx (ordinal 108) is available in XInput 1.4 that is shipped with Windows 8 and newer.
(cherry picked from commit 08a7ca4d53ef0d504ec780936fd65616fe3a9f09)
This makes sure you can hit Ctrl-C if you don't have permission to access the raw keyboard device.
Fixes https://github.com/libsdl-org/SDL/issues/4812
(cherry picked from commit ce9e1bd32485ae8a024d8147e3aa3a36f0cb0a19)
This call is actually a left-over when porting from fcitx4 service to the new org.freedesktop.portal.Fcitx supported by both fcitx4/fcitx5. CloseIC is actually never a part of the new interface on org.freedesktop.portal.Fcitx. It cause any issue user visible effect.
It is possible for retrieving the machine ID to fail, either because
dbus was installed incorrectly (machine ID absent or corrupt), or in
32-bit builds, because stat() on the machine ID fails with EOVERFLOW
if it has an out-of-range timestamp or inode number.
dbus has historically treated this as a faulty installation, raising
a warning which by default causes the process to crash. Unfortunately,
dbus_get_local_machine_id() never had a way to report errors, so it has
no alternative for that (bad) error handling.
In dbus >= 1.12.0, we can use dbus_try_get_local_machine_id() to get
the same information, but with the ability to cope gracefully with
errors. ibus won't work in this situation, but that's better than
crashing.
(cherry picked from commit 91198baed40d5709020c3001e9234f4580df696a)
Mitigates: https://github.com/ValveSoftware/steam-for-linux/issues/9605
Signed-off-by: Simon McVittie <smcv@collabora.com>
They can vanish for UP TO EIGHT SECONDS...!
This is for devices that connect to HDMI/DisplayPort/etc, where it
presumably has to wait for a display to get up and running before it
can play audio through it, so one can see the audio device fail when
changing display modes, or the system returning from sleep. Since this
can be triggered by a game changing video resolutions at startup (either
before or after opening the audio device!), it's important to deal with.
In normal conditions, it shouldn't take this long to open or recover an
audio device, but this is better than unexpectedly losing the device
in this situation.
Fixes#7044.
Fixes#5571.
Another regression from commit dca3fd8307,
which was a backport of commit de3909a190f6e1a3f11776ce42927f99b0381675
from SDL3 to SDL2. This time the regression is much less apparent,
however, due to two reasons:
- It only appears when the SDL project is ran on an actual device
due to magic stringage.
- More importantly, the regression was partially hidden due to
the nature of de3909a190f6e1a3f11776ce42927f99b0381675.
The commit which was backported added a single `I` to the JNI method
signature in `SDL_android.c`, representing the added `int axis_mask`
parameter. The parameter was added to both SDL2 and SDL3.
However, notably, that `I` was added *after* commit
fcafe40948fe308cc9552df5a3d625ee2725de5a, which removed the
`int nballs` parameter from the joystick API, but only from the SDL3
branch.
Therefore, in totality, what should really have been a merge conflict,
was obscured by the fact that the SDL3 branch ended up having
a net-identical JNI signature to the SDL2 branch, due to having
one bool param removed and one added - while, in fact, the SDL2 branch
needed one bool param added and none removed.
Axis order was changed in 6f1f586086a18ab32ddccc05e4616aac02774a1b to improve
default mappings.
(cherry picked from commit de3909a190f6e1a3f11776ce42927f99b0381675)
keymap can change over time, caching the keymap causes wrong keys
returned when user changes keymap during runtime
Signed-off-by: Michal Suchanek <msuchanek@suse.de>
I updated .clang-format and ran clang-format 14 over the src and test directories to standardize the code base.
In general I let clang-format have it's way, and added markup to prevent formatting of code that would break or be completely unreadable if formatted.
The script I ran for the src directory is added as build-scripts/clang-format-src.sh
This fixes:
#6592#6593#6594
(cherry picked from commit 5750bcb174300011b91d1de20edb288fcca70f8c)