|
412ceb84
|
2022-05-24T16:27:54
|
|
video: Only check major version in SDL_GetWindowWMInfo
Since #5602, SDL is intended to have the same ABI across the whole
major-version 2 cycle, so we should not check that the minor version
matches the one that was used to compile an application.
There are two checks that could make sense here.
The first check is that the major version matches the expected major
version. This is usually unnecessary and is not usually done (if we're
calling into the wrong library we'll likely crash anyway), but since we
have the information, we might as well continue to use it.
The second check is whether the version provided by the caller is
equal to or greater than a threshold version at which additional fields
were added to the struct. If it is, we should populate those fields;
if it is not, then we cannot. This is only useful on platforms where
additional fields have genuinely been added during the lifetime of
SDL 2, like Windows and DirectFB (but not X11).
This commit changes the first check to be consistent about only looking
at the minor version, while leaving the second check using SDL_VERSIONNUM
(which will be removed or widened in SDL 3, but it's fine for now).
Resolves: https://github.com/libsdl-org/SDL/issues/5711
Fixes: cd7c2f1 "Switch versioning scheme to be the same as GLib and Flatpak"
Signed-off-by: Simon McVittie <smcv@collabora.com>
|
|
e4b5afa5
|
2022-05-21T13:16:12
|
|
fix unused variable depending on YUV format
|
|
e59cba95
|
2022-05-21T13:50:56
|
|
add libdecor_dispatch
|
|
9edd411a
|
2022-05-19T17:15:10
|
|
x11: send move/resize events when waiting on fullscreen change.
Otherwise we ignore the Configure/etc events when they come in because
the window is already in an identical state as far as SDL is concerned.
Fixes #5593.
May also fix:
Issue #5572.
Issue #5595.
|
|
b798e49c
|
2022-05-19T21:44:38
|
|
Fix build warning with MSVC
|
|
9dfa000b
|
2022-05-18T20:20:03
|
|
Initial support for building for Windows with OpenWatcom
|
|
5669743a
|
2022-05-19T09:45:57
|
|
Make sure SDL_CaptureMouse() is only called on the main thread
Windows handles mouse capture on a per-thread basis, and capture must be done on the thread used to create a window.
Fixes https://github.com/libsdl-org/SDL/issues/5577
|
|
501a4991
|
2022-05-05T18:44:32
|
|
Add clang-format on/off comments where necessary.
Comments were added in places where INDENT-ON/OFF comments are. Places
like stdlib's asm don't need it as clang-format doesn't try to indent it.
|
|
0e6d4baa
|
2022-05-19T01:23:24
|
|
Fixed compile warning on gcc 11
|
|
c7dff3a2
|
2022-05-19T00:35:22
|
|
Attempt to get the X1 and X2 button state on X11 by using the current event state instead of direct X11 query.
|
|
57130b75
|
2022-05-19T00:31:20
|
|
Revert "x11: get x1/x2 button state in GetGlobalMouseState"
This reverts commit 3fcc2cb500a752698687ad0c8bb14778e6cb84c3.
Button4 and Button5 are for the scrollwheel, not the extended buttons.
I don't know of a way to query the state of the extended buttons using X11.
|
|
e19a9a79
|
2022-05-18T15:29:59
|
|
Fixed a message box getting the mouse capture state out of sync
|
|
c8eea020
|
2022-05-18T21:14:20
|
|
Fix C89 build errors in Windows builds
|
|
0cca71a8
|
2022-05-18T22:12:05
|
|
Use SDLCALL for callbacks in public APIs
|
|
06aca7ed
|
2022-05-18T10:09:24
|
|
Fixed warping back into the window when gaining focus with warp relative mode enabled
|
|
56665e1d
|
2022-05-17T12:50:13
|
|
cocoa: Try to use better system cursors.
These try to pull from the .pdf files that are installed with
macOS, which fit our needs better, and fall back to the most
reasonable defaults available from NSCursor if we can't load
them.
Since these are installed under /System, they should be sandbox
accessible, and if this totally fails, it should still go on,
albeit with a less good cursor.
Reference Issue #2123.
|
|
e9c7b519
|
2022-05-16T21:03:41
|
|
macOS: Fix reference counts of internal window data.
Fixes crashes when destroying or recreating a window (#5664).
|
|
2317a96c
|
2022-05-16T10:50:13
|
|
x11: Use XC_top_left_corner/XC_top_right_corner instead of XC_fleur.
On Gnome (and hopefully others!), this produces something that actually
matches SDL_SYSTEM_CURSOR_SIZENWSE/SDL_SYSTEM_CURSOR_SIZENESW. On
other desktop enviroments, it probably fits the spirit better than
XC_fleur in any case.
Reference Issue #2123.
|
|
e4bb3c86
|
2022-05-11T18:13:44
|
|
wayland: Fix build for configs without libdecor
|
|
6222bd31
|
2022-05-11T16:26:43
|
|
wayland: Don't create a new libdecor context if one already exists
|
|
6f88cbe4
|
2022-05-11T16:04:34
|
|
wayland: Support xdg_decoration requesting client-side decorations.
Don't be fooled by the diff size - this ended up being a big refactor of the
shell surface management, masked only by some helper macros I wrote for the
popup support.
This change makes it so when xdg_decoration is supported, but CSD is requested,
the system bails on xdg support entirely and resets all the windows to use
libdecor instead. This transition isn't pretty, but once it's done it will be
smooth if decorations are an OS toggle since libdecor will take things from
there.
In hindsight, we really should have designed libdecor to be passed a toplevel,
having it manage that for us keeps causing major refactors for _every_ change.
|
|
9b75fa01
|
2022-05-11T18:31:34
|
|
N-Gage port: add changes from code reviews, overall cleanup (#5618)
* Add changes from code review by @ccawley2011, #5597, overall cleanup
* Update N-Gage README, minor cleanup and rephrasing
* Call SDL_SetMainReady() before calling SDL_main, return SDL_main instead of main
|
|
6da99d4a
|
2022-05-11T08:40:17
|
|
Don't use SDL_SIMDFree() if the pixels haven't been allocated with SDL_SIMDAlloc()
|
|
2f924020
|
2022-05-05T20:12:07
|
|
Add SDL_SCANCODE_CALL and SDL_SCANCODE_ENDCALL
|
|
2bc37362
|
2022-05-05T13:31:26
|
|
Add SDL_SCANCODE_SOFTLEFT and SDL_SCANCODE_SOFTRIGHT
|
|
f871c178
|
2022-05-10T17:32:24
|
|
macOS: remove dead code for supporting 10.6 at runtime.
|
|
ec8fa577
|
2022-05-07T21:57:23
|
|
macOS: always use Objective-C ARC (automatic ref counting).
Change Cocoa SDL_VideoData and SDL_WindowData implementations from C structs to Objective-C objects, since bridging between C and ObjC is easier that way.
|
|
adac3bd1
|
2022-05-03T12:31:50
|
|
video: restore ability to disable fb accel via hint
Somewhere in code refactoring between .20 and .22 this check
was lost, and so the hint had no effect anymore.
|
|
fbd230bb
|
2022-05-03T17:51:49
|
|
Add support for the Nokia N-Gage (#5597)
* Add initial support for the Nokia N-Gage
* N-Gage: disable clipping for the time being, issue needs to be resolved later
* Move va_copy definition to SDL_internal.h
* Move stdlib.h include to SDL_config_ngage.h, much cleaner this way
* Remove redundant include, add HAVE_STDLIB_H
* Revert "N-Gage: disable clipping for the time being, issue needs to be resolved later"
This reverts commit 4f5f0fc36cc7f34fad05e45671dfa7b8dc32fd51.
* N-Gage: fix clipping issue by providing proper math functions
|
|
3fcc2cb5
|
2022-05-03T11:19:39
|
|
x11: get x1/x2 button state in GetGlobalMouseState
|
|
6c2928b4
|
2022-04-29T19:30:47
|
|
Switch uses of MIN() to SDL_min()
We're excluding files in src/hidapi to minimize the
diff against the upstream project.
|
|
7e636b03
|
2022-04-29T10:16:14
|
|
Removed log message length limitation for Apple platforms
This works in conjunction with https://github.com/libsdl-org/SDL/pull/5584
|
|
12f15aaa
|
2022-04-27T10:03:32
|
|
fix build
|
|
05bd225a
|
2022-04-26T23:14:44
|
|
x11: If XRandR isn't available, add a generic display.
We can get _some_ of the info we need out of standard Xlib and report a
single display (which might actually be multiple physical displays mushed
into a single desktop). This is better than nothing, but you should really
just build with XRandR support and get a better X server. :)
|
|
ccc70e64
|
2022-04-26T23:14:21
|
|
x11: Fixed some compiler warnings.
|
|
7d7ec9c9
|
2022-04-26T16:41:28
|
|
x11: Remove XVidMode and Xinerama support.
Fixes #1782.
|
|
b293888c
|
2022-04-26T19:44:34
|
|
Fixes an issue introduced via #5573 when building for i686
|
|
01ef98a5
|
2022-04-26T10:19:03
|
|
Don't force keyboard auto-repeat on, if the user has disabled it for some reason
Fixes https://github.com/libsdl-org/SDL/issues/2400
|
|
795744fc
|
2022-01-07T10:11:46
|
|
Turn off relative mouse before window checks as well
|
|
e2d268a3
|
2022-01-06T23:42:44
|
|
SDL_cocoamouse.m: SetRelativeMouseMode even if out of focus
Should fix #3087
|
|
76afb858
|
2022-04-25T10:35:56
|
|
Introduces Cocoa_GetWindowDisplayIndex. This enable a proper management for dpi when switching between retina and non-retina displays.
|
|
53dea983
|
2022-04-25T13:51:15
|
|
x11: revert checks for _NET_WM_STATE_FULLSCREEN changes.
This reverts commit 85977354fbce9ecb2add660a88e6bec3532c3e26.
This reverts commit 0249df9d960f9bc28b476e1171c5501fc37cca12.
Fixes #5572.
Reopens #5390.
|
|
aeadbdd7
|
2022-04-20T09:00:00
|
|
Remove an unused function prototype
|
|
c8c59a21
|
2022-04-20T08:58:58
|
|
Fix a -Wshadow warning
|
|
3753a7b1
|
2022-04-19T14:42:39
|
|
Fix recent changes in VitaSDK
|
|
02225aa7
|
2022-04-18T22:57:03
|
|
Fixed build
|
|
49a2e4b0
|
2022-04-19T00:36:53
|
|
x11: Revert "Fix keymap updating for X11 backend"
This reverts commit de6d290266d1def0eef9df81bf9be41c12a98c61.
This patch had multiple issues, discussed in #5520.
|
|
9919d1a7
|
2022-04-18T11:51:09
|
|
Remove HWND_TOPMOST for fullscreen windows
Fixes https://github.com/libsdl-org/SDL/issues/5509
|
|
2b529461
|
2022-04-15T11:51:02
|
|
video: Don't minimize fullscreen windows on focus loss by default when mode switching is disabled
When mode switching is disabled in a video backend, fullscreen windows are basically just fullscreen desktop windows with different internal scaling. As no mode switching occurs, there's no need to minimize them on focus loss by default. This can still be overridden by explicitly setting the internal hint for minimizing on focus loss.
This has the side effect of fixing a bug on GNOME, where, when a fullscreen Wayland window has it's focus lost and restored via alt+tab followed by switching back to windowed mode, the top portion of the window won't end up being obstructed by GNOME's top bar.
|
|
c37090f9
|
2022-04-18T12:30:08
|
|
wayland: Add support for TOOLTIP/POPUP_MENU
|
|
254fcc90
|
2022-04-18T09:03:14
|
|
Revert "video: Prefer Wayland over X11"
This reverts commit 8ceba27d6291f1195e13608033ec439aec621fc6.
SDL Wayland support is stable, but there are a number of issues with third-party software (NVIDIA drivers, libwayland event overflow, libdecor not handling plugin load failures, Steam overlay not working with Wayland, etc.) that make it better to default to X11 at this time.
Games which would like to prefer wayland when available can use the following code before SDL_Init():
SDL_SetHint(SDL_HINT_VIDEODRIVER, "wayland,x11");
Fixes https://github.com/libsdl-org/SDL/issues/5527
|
|
c1336b21
|
2022-04-17T12:43:32
|
|
hints: Make SDL_VIDEODRIVER and SDL_AUDIODRIVER formal hints.
They were just environment variables before.
Fixes #5528.
|
|
67e0f546
|
2022-04-15T18:24:57
|
|
x11: Update the display when the WM changes a window's fullscreen state.
Fixes #5390.
|
|
edb473cf
|
2022-04-15T15:03:28
|
|
video: Wayland: Always round scaled pointer coordinates down
Rounding up can cause the pointer coordinates to exceed the window boundaries at the right and bottom edges.
|
|
13393a1c
|
2022-04-15T14:28:07
|
|
video: Wayland: Clamp fullscreen window dimensions to desktop
A scaled fullscreen window may exceed the bounds of the desktop. Clamp the window size to the desktop dimensions in fullscreen mode.
|
|
01b14e14
|
2022-04-12T08:49:19
|
|
avoid NullPointer in SDL_GL_MakeCurrent
|
|
9c2f46b0
|
2022-04-12T15:23:22
|
|
Wayland: Add SDL_HINT_VIDEO_WAYLAND_PREFER_LIBDECOR
This hint allows libdecor to be used even when xdg-decoration is
available. It's mostly useful for debugging libdecor, but could in
theory be used by applications which want to (for example) bundle their
own libdecor plugins.
|
|
c2093fab
|
2022-04-08T13:58:45
|
|
video: wayland: Set the surface damage region when using fullscreen viewports
When using emulated display modes, the output size is often larger than the drawable buffer. As the surface damage region is automatically calculated from the smaller drawable buffer size, the damage region needs to be manually set to cover the entire viewport region or visual repaint artifacts can result.
|
|
5613a560
|
2022-04-07T11:32:22
|
|
Make sure the UIKit message box is being handled on the main thread
Potentially fixes https://github.com/libsdl-org/SDL/issues/4865
|
|
49b9e347
|
2022-04-07T08:24:03
|
|
Only update modifier state for keys that are pressed in another application
Fixes https://github.com/libsdl-org/SDL/issues/4432
|
|
85977354
|
2022-04-07T09:14:33
|
|
x11: Treat WM setting the window "fullscreen" like FULLSCREEN_DESKTOP.
Fixes #5390.
|
|
d1f7f9e3
|
2022-04-06T11:18:46
|
|
wayland: Pin the fake window position at (0, 0).
I kind of thought it'd be nice to have it in the center, but this is an issue
for applications that still assume global mouse and window positions are
accessible. For example, this fixes cursor offset issues in UE5.
|
|
279aeb59
|
2022-04-06T01:32:57
|
|
wayland: Add a bug link for the detach FIXME
|
|
3ada694e
|
2022-04-06T01:18:03
|
|
wayland: Try to detach at the beginning of ShowWindow, just in case.
It's possible that an external component (probably a GL/VK context) committed, so we need to cover our bases and detach in both HideWindow and ShowWindow.
Fixes a crash in UE5 editor's pop-ups.
|
|
dcfb7fff
|
2022-04-06T00:55:32
|
|
wayland: Evaluate WINDOWPOS_CENTERED_DISPLAY for move events
Partially fixes the mouse cursor in UE5 editor. Imperfect because UE5 uses window position and global mouse state to get position, but of course we don't have global mouse and this is just to get the right display index so this still fails overall. We really need to make global mouse support a feature query...
|
|
0249df9d
|
2022-04-05T23:04:19
|
|
x11: Try to keep SDL_WINDOW_FULLSCREEN* in sync with window manager.
So if Gnome/KDE/etc have a keyboard shortcut or titlebar decoration to
make any window go fullscreen (with the _NET_WM_FULLSCREEN flag on the
_NET_WM_STATE property), we update the SDL window flag.
Fixes #5390.
|
|
138d96c8
|
2022-04-05T19:30:25
|
|
Send key release event to input method. (#5281)
Co-authored-by: Ethan Lee <flibitijibibo@gmail.com>
|
|
8bae343f
|
2022-04-05T22:19:25
|
|
x11: when waiting on fullscreen changes, not window position _and_ size.
This makes sure the window doesn't have outdated values if you try to access
them (or call something that does, like SDL_SetWindowMinimumSize).
Fixes #5233.
|
|
268c2fa8
|
2022-04-05T18:42:17
|
|
Don't resize fullscreen windows when hiding or minimizing them (thanks @madewokherd!)
This has the benefit of window previews (mousing over the icon) having the correct size and contents.
Fixes https://github.com/libsdl-org/SDL/issues/5320
|
|
def27267
|
2022-02-05T12:32:06
|
|
Ignore focus change messages that contradict GetForegroundWindow.
On Wine, when a window is programmatically minimized in response
to losing focus, we receive a WM_ACTIVATE for the deactivation,
but GetForegroundWindow still indicates that our window is focused.
This causes an incorrect SDL_WINDOWEVENT_FOCUS_GAINED.
This is probably a Wine bug, but it may take a while to fix and
then for the fix to make its way to users.
|
|
a5672b85
|
2022-04-05T11:10:41
|
|
x11: Wait a bit to see if window pos changes when changing fullscreen.
Helps prevent window from moving to 0,0 when leaving fullscreen.
Fixes #4749.
|
|
45372b1c
|
2022-04-04T21:36:25
|
|
x11: Don't unload libGL.so to prevent a crash in XCloseDisplay()
libGL.so may register callbacks that can be invoked upon XCloseDisplay().
If XCloseDisplay() is called after libGL.so is unloaded, the callback pointer
will point at freed memory and invoking it will crash.
The texture framebuffer check optimized out in f37e4a9 was causing libGL.so to
never be unloaded as a side-effect. Skipping it exposed this bug by allowing
libGL.so to actually unload.
|
|
7b3449b8
|
2022-04-04T20:46:56
|
|
Minor cleanup
|
|
ad6bc521
|
2022-04-01T07:59:16
|
|
Move SDL_List functions to SDL_list.c to avoid more merge with eventual PR
|
|
0d7edcb7
|
2022-03-31T16:15:51
|
|
Fixed loading 32-bit BMP files
|
|
ea7d5307
|
2022-03-31T14:11:52
|
|
emscripten: Proxy SDL_GetUsableDisplayBounds to the main thread.
|
|
fe79eb2f
|
2022-02-26T20:46:52
|
|
emscriptenframebuffer: fix formatting
|
|
268cc2a4
|
2022-02-26T20:42:54
|
|
emscriptenmouse: remove useless return statement
|
|
3136a530
|
2022-02-25T14:26:23
|
|
fix formatting and cast warnings
Co-authored-by: Charlie Birks <charlie@daftgames.net>
|
|
40415859
|
2022-02-25T00:12:33
|
|
emscriptenmouse: remove old extra `_INT`
|
|
4dca8f7f
|
2022-02-24T21:09:03
|
|
SDL2 thread proxying fixes
This PR uses new APIs added in [emscripten-core/emscripten#9336](https://github.com/emscripten-core/emscripten/pull/9336)
to improve compatibility with USE_PTHREADS=1.
Original PR: https://github.com/emscripten-ports/SDL2/pull/127
By: @jakogut
Reviewed by: Daft-Freak
|
|
1c7bf478
|
2022-03-31T10:09:02
|
|
x11: Ignore BadValue for extremely small XRRSetScreenSize resolutions.
Reference Issue #4840.
|
|
95c0fec5
|
2022-03-31T12:35:17
|
|
Vita: PVROGL: fix indentation and ifdef guards
|
|
b5700ab3
|
2022-03-29T19:32:21
|
|
Cleanup Spaces
|
|
8c542a35
|
2022-03-29T19:08:56
|
|
Desktop OpenGL 1.X/2.X PSVita Support
|
|
7e15ad2f
|
2022-03-30T14:15:52
|
|
x11: Catch X11 errors in X11_SetWindowPosition and X11_SetWindowSize.
The functions can go south if other operations are in progress, like
X11_SetWindowBordered, which might be doing something traumatic behind the
scenes of the window manager.
We can't make these tasks totally synchronous, which would fix the problem,
because not only can the window manager block however long it wants, it might
also decide to deny our requests without any notification, so we'd be waiting
forever for a window change that isn't coming. :(
Fixes #5274.
|
|
4d1905c9
|
2022-03-29T13:34:14
|
|
video: wayland: Use viewports for non-fullscreen windows with fractional scaling
Use viewports for non-fullscreen windows when the desktop uses fractional scaling and the window is flagged as DPI-aware to provide a backbuffer mapped as close to 1:1 output as possible. In the cases of odd window sizes the backbuffer may be a pixel off of scaling perfectly into the window size due to its scaled size being rounded off, but a minute amount of scaling during output is likely preferable to the large amounts of overdraw needed with integer scaled buffers.
|
|
fa4c5198
|
2022-03-28T21:32:30
|
|
video: wayland: Expose more resolutions for mode emulation
Expose as many emulated display modes as possible. They will currently display stretched to the display's native desktop aspect, but if an application requires a hardcoded resolution, it will work at minimum.
Aside from the change in the emulated display mode list, the Wayland event handling code had to be updated to support separate scaling for the x and y axes, as square pixels are no longer guaranteed.
|
|
d875416a
|
2022-03-28T15:32:30
|
|
wayland: Minor fix for old compilers
|
|
4d76c9cb
|
2022-03-25T20:35:07
|
|
video: wayland: Use wp-viewporter for fullscreen with non-native resolutions
Wayland doesn't support mode switching, however Wayland compositors can support the wp_viewporter protocol, which allows for the mapping of arbitrarily sized buffer regions to output surfaces. Use this functionality, when available, for fullscreen output when using non-native display modes and/or when dealing with scaled desktops, which can incur significant overdraw without this extension.
This also allows for the exposure of arbitrarily sized, emulated display modes, which can be useful for legacy compatability.
|
|
713a6754
|
2022-03-26T22:26:15
|
|
wayland: Relax the check for mismatching output scales
|
|
5655be15
|
2022-03-26T19:57:39
|
|
wayland: Avoid overwriting xdg_output position with wl_output position
|
|
40417b18
|
2022-03-26T19:55:04
|
|
wayland: Work around a GNOME xdg_output scaling issue
|
|
7a1c45bd
|
2022-03-25T12:51:38
|
|
wayland: Optimize keyboard_handle_modifiers.
1. Mod index values are (mostly) constant, so can be done with xkb_state_new
2. Mods can change without the group changing, avoid remap events if possible
Lastly, as a bonus, I added braces to the locale check, because I was nearby.
|
|
bf38fd46
|
2022-03-25T11:52:50
|
|
YUV: fix invalid read on last line when converting from SDL_PIXELFORMAT_YUY2 (see bug #4841)
|
|
2891f082
|
2022-03-25T02:49:49
|
|
wayland: Use xkb_keymap_mod to set mod state
|
|
6d9ca926
|
2022-03-25T01:36:39
|
|
wayland: Enforce text capitalization manually, for remapped keymods
|
|
a75c6150
|
2022-03-25T01:33:40
|
|
wayland: Add an xkb_keysym_t->SDL_Keycode mapping for backspace
|
|
ab74b6a3
|
2022-03-24T15:34:29
|
|
wayland: Remove some now-redundant casts
|
|
ee52ad08
|
2022-03-24T15:32:25
|
|
wayland: Minor fixes for old compilers
|