Proton uses this on Linux to determine what the XInput slot is for the gamepad. Other applications will get the real controller name and VID/PID by virtue of the code in SDL_steam_virtual_gamepad.c
Remove the excess apostrophe (') introduced by commit
c4b471bd1314933fd726ef987d96c92c68033f99.
Some editors complain about it.
Signed-off-by: Yasushi SHOJI <yashi@spacecubics.com>
I _did_ appreciate the explanation, but it doesn't have to live in the
source code; also we can just release `devuid` and then check for error with
the usual macro, since SDL is done with it either way at this point.
Before, it was treating `typedef struct x x;` as a struct typedef instead of
a datatype typedef. Worse, it was treating `typedef struct x *x` the same!
This might require us to manually clean out some incorrect CategoryAPIStruct
tags that have accumulated in various pages.
A minimized window may not be associated with any displays, so check that the output array is valid and that there is at least one associated display before dereferencing.
Fixes a crash when attempting to unset fullscreen on a minimized window.
For GTK-based systems using XSETTINGS it's much more likely to be
available, rather than the "GDK_SCALE" environment variable, which is a
debugging tool according to the GTK documentation.
Import the XSettingsClient implementation to handle the settings
selection.
Currently, we only care about the Gdk/WindowScalingFactor value used by
the windowing system to notify us of display-wide changes in the scaling
factor.
- Lowercase the first letter of \param and \returns data; in the former case,
it looks better in the table and Doxyggen (imho), in the latter it's because
it's inserted after the word "Returns" to make an english sentence on the
wiki. This is disabled in this commit, but it was useful to turn it on to
fix up the headers manually.
- Make sure everything ends with punctuation. Inserts a period if there's
no existing period or exclamation point at the end of the text. This is
enabled going forward, so we won't have to manage it ourselves.
If XInput2 is enabled, it will grab the pointer on button presses, which results in XGrabPointer returning AlreadyGrabbed. Clear any existing grabs before attempting the confinement grab to avoid a timeout scenario.