15522 Commits

Author SHA1 Message Date
Frank Praznik
ad813a65e7 x11: Fix initial window positioning
Some window managers can send garbage values during the initial mapping of a window, and need the position set again after mapping to ensure proper placement. Position requests sent before mapping can otherwise end up ignored. Ignore initial configure events when initially showing the window, and make sure that the position is set after the window is mapped, either when the window borders appear, or after the initial configure events in the case of borderless windows.

This also eliminates sending excessive/redundant move requests, which can cause strange behavior on some window managers, particularly if done before the window is actually mapped.

Fixes cases of incorrect initial window placement on GNOME + XWayland.
2024-04-14 12:19:00 -04:00
Frank Praznik
01195c5d32 x11: Cancel the mode switch timer immediately upon success
Prevents erroneous timeout error messages if the window is moved to another display before the timeout period elapses.
2024-04-14 12:19:00 -04:00
Frank Praznik
037a62add5 wayland: Apply exclusive fullscreen parameters if changed between the initial fullscreen call and the fullscreen configure event 2024-04-14 12:19:00 -04:00
Frank Praznik
26d3cbee79 video: Use the origin for determining the display for fullscreen windows
Fullscreen windows may be larger than the display if they were moved between differently sized displays and the new position was received before the new size or vice versa. Using the center of the window rect in this case can report the wrong display, so use the origin.

Fixes flickering and the window bouncing between different displays when moving fullscreen X11 and Wayland windows in certain multi-monitor layouts.
2024-04-14 12:19:00 -04:00
Frank Praznik
1804ad175c wayland: Don't send spurious display changes when a fullscreen window is moving
When moving a fullscreen window, the compositor movement animation can cause it to cross multiple displays, sending multiple display changed events, which can cause the window to jitter or be snapped to the wrong display in the case of exclusive fullscreen modes.

When moving fullscreen windows, only send the display changed event when the window isn't on multiple displays to avoid spurious display changed events.
2024-04-14 12:19:00 -04:00
SDL Wiki Bot
11de629dd2 Sync SDL3 wiki -> header 2024-04-14 05:50:22 +00:00
Ryan C. Gordon
291edc073c
include: Document SDL_TriggerBreakpoint. 2024-04-14 01:48:52 -04:00
SDL Wiki Bot
59c332e569 Sync SDL3 wiki -> header 2024-04-14 05:35:26 +00:00
Ryan C. Gordon
041de0c2eb
include: Some documentation improvements. 2024-04-14 01:33:56 -04:00
Ryan C. Gordon
21bc72bef1
wikiheaders: Allow parts of the headers to be ignored.
The specific cases here were SDL_size_mul_overflow_builtin and
SDL_size_add_overflow_builtin, which are forced-inline symbols in
SDL_stdinc.h that have to exist, but aren't really part of the public API,
and thus shouldn't be exported as documentation.
2024-04-13 22:57:23 -04:00
SDL Wiki Bot
e4f097805b Sync SDL3 wiki -> header 2024-04-14 00:22:23 +00:00
Ryan C. Gordon
081a94e321
include: Updated a bunch of documentation. 2024-04-13 20:10:13 -04:00
Ryan C. Gordon
3c86af5901
wikiheaders: Add support for SDL_FORCE_INLINE functions. 2024-04-13 20:08:14 -04:00
Ryan C. Gordon
239b34d760
docs: Added some notes about iOS and the main callbacks. 2024-04-13 15:14:32 -04:00
SDL Wiki Bot
9c5ae7293f Sync SDL3 wiki -> header 2024-04-13 18:59:10 +00:00
SDL Wiki Bot
cae90ef489 Sync SDL3 wiki -> header 2024-04-13 18:38:11 +00:00
Ryan C. Gordon
6e1ed94913
ios: Renamed APIs that referred to "iPhone" to refer to "iOS".
Macros that papered over this difference in SDL2 have been removed for SDL3.

Fixes #9527.
2024-04-13 14:30:30 -04:00
Ryan C. Gordon
d252a8fe12
joystick: SDL_VirtualJoystickDesc no longer takes a struct version.
If we need to extend this in the future, we'll make a second struct and
a second SDL_AttachVirtualJoystickEx-style function that uses it.

Just zero the struct and don't set a version.

Fixes #9489.
2024-04-13 14:16:12 -04:00
SDL Wiki Bot
202bd7b0ff Sync SDL3 wiki -> header 2024-04-13 13:24:25 +00:00
Ryan C. Gordon
f01b34fd8d
include: Removed some SDL2 references in the documentation. 2024-04-13 09:23:37 -04:00
Ryan C. Gordon
98e9f361a8
winrt: Remove SDL_WinRTGetFSPathUNICODE, rename SDL_WinRTGetFSPathUTF8.
Fixes #9470.
2024-04-13 08:24:12 -04:00
SDL Wiki Bot
02da4acf0f Sync SDL3 wiki -> header 2024-04-13 12:07:27 +00:00
Ryan C. Gordon
3f4ac1a3c7
winrt: Implemented SDL_GetUserFolder() for WinRT/UWP. 2024-04-13 08:05:43 -04:00
Ryan C. Gordon
1e369b7f33
build-scripts/fnsince.pl: Remove SDL2-specific fixup. 2024-04-13 08:05:43 -04:00
SDL Wiki Bot
cbb3c69cb0 Sync SDL3 wiki -> header 2024-04-13 01:10:12 +00:00
anon
03bc53fe31 include: Fixes the improper fix I made before of documentation, SDL_SensorType. 2024-04-12 14:51:52 -04:00
Frank Praznik
3fca8d4f82
wayland: Fix build warning (boolean always true) 2024-04-12 14:15:29 -04:00
Frank Praznik
f6edc2f603 wayland: Use xdg-output to get connector names when older versions of libwayland are in use
Connector names prior to v4 were sent via xdg-output, so use that if an older version of libwayland is present.

Additionally, ensure the output names are actually allocated before comparing the strings.
2024-04-12 14:04:43 -04:00
Frank Praznik
60f26182c3 audio: Prefer Pipewire over Pulseaudio if the pipewire-pulse service is running
Use DBus to query Systemd to check if the pipewire-pulse service is in the "running" state. If it is, then it is certain that Pipewire is being used instead of Pulseaudio as the preferred system mixer.

If DBus support is not enabled or Systemd is not being used on the underlying system, this check will simply fail and the standard driver order will be tested.
2024-04-11 20:35:10 -04:00
Frank Praznik
b6cb63adef
wayland: Update tablet-v2 protocol file to stable version
No functional changes, just removes the 'unstable' wording from the header names and updates some documentation.
2024-04-11 18:34:02 -04:00
SDL Wiki Bot
935b6502ac Sync SDL3 wiki -> header 2024-04-11 19:40:25 +00:00
anon
7ab8e4797e include: Add documentation to SDL_MessageBoxColorType. 2024-04-11 15:39:58 -04:00
anon
1abaacedb2 include: Fix documentation generation for SDL_SensorType. 2024-04-11 15:38:54 -04:00
SDL Wiki Bot
2f4f1f6923 Sync SDL3 wiki -> header 2024-04-11 17:35:27 +00:00
Ryan C. Gordon
0df988389c
include: Add \since to all documentation that was missing it. 2024-04-11 13:34:29 -04:00
Ryan C. Gordon
db39de7f63
build-scripts/fnsince.pl: Updated to use Markdown instead of MediaWiki format. 2024-04-11 13:29:04 -04:00
SDL Wiki Bot
073d2378dc Sync SDL3 wiki -> header 2024-04-11 12:59:41 +00:00
Ryan C. Gordon
af6a4a9e38
wikiheaders: Fixed a silly logic bug. 2024-04-11 08:57:50 -04:00
Ryan C. Gordon
9421a01400
SDL_AudioStreamCallback: Note that there's no _requirement_ to do anything.
This is as opposed to something like the SDL2 audio callback, where you
_must_ supply data or disaster occurs.
2024-04-11 08:56:10 -04:00
Ryan C. Gordon
6ccdfffe26
wikiheaders: Fixes to manpage output for datatypes vs functions. 2024-04-11 01:03:07 -04:00
Ryan C. Gordon
e47f2956cf
include: Documented SDL_bool a little. 2024-04-11 00:48:11 -04:00
Ryan C. Gordon
407e54e188
include: More improved docs for the wikibridge! 2024-04-11 00:37:11 -04:00
Ryan C. Gordon
5a58b3d97a
wikiheaders: Bridge basic typedefs to the wiki! 2024-04-11 00:37:11 -04:00
Frank Praznik
d7dcf4916f docs: Mention the SDL_HINT_VIDEO_SYNC_WINDOW_OPERATIONS hint in the migration guide 2024-04-10 21:51:03 -04:00
Ryan C. Gordon
f121553082
include: Fixed up SDL_AudioFormat documentation.
(this is not currently bridged to the wiki, but will be soon!)
2024-04-10 18:45:29 -04:00
Frank Praznik
38c4f29c29 wayland: Round fractional scale values when viewports aren't supported 2024-04-10 16:01:23 -04:00
SDL Wiki Bot
b2239cb7ba Sync SDL3 wiki -> header 2024-04-10 19:59:14 +00:00
Ryan C. Gordon
557f26e6f0
include: Fixed up some more documentation. 2024-04-10 15:58:28 -04:00
ChedRed
b33420cac7 Updated INSTALL.md
Added a subsection for building MacOS universal packages.
2024-04-10 09:18:42 -04:00
Anonymous Maarten
06758685a5
stdinc: modify default alloca prototype
For compatibilty with TinyCC.
2024-04-10 08:03:46 +00:00