|
b592e78f
|
2021-09-25T12:55:41
|
|
wayland: Expose xdg_toplevel to SysWM
|
|
477fcf52
|
2021-09-24T10:49:46
|
|
Fixed whitespace
|
|
db68af80
|
2021-09-24T10:49:44
|
|
Reduce the likelyhood that the mouse will hover over the taskbar or toast notification while in relative mode, which causes a mouse leave event.
This will still happen occasionally as the mouse is whipped around, if there is a window overlapping the game window, but it should happen less often now. This could even happen with the original code that warped the mouse every frame, so this should be a good compromise where we don't warp the mouse continously and we still keep the mouse in the safe area of the game window.
Note that notifications can be any size, so the safe area may need to be adjusted or even dynamically defined via a hint.
|
|
7ed415d2
|
2021-09-23T14:07:38
|
|
wayland: Reuse KeySymToUcs4 to replicate X11 keymap behavior
|
|
1a4e2e5e
|
2021-09-23T14:31:54
|
|
wayland: For text, ignore key events when Ctrl is held
Fixes #4695
|
|
0aff42a1
|
2021-09-23T00:02:44
|
|
egl: Group data fields before function pointers in SDL_EGL_VideoData.
|
|
0ad4956c
|
2021-09-23T00:00:46
|
|
egl: explicitly call eglBindAPI during SDL_GL_MakeCurrent.
The EGL API binding must be specified per-thread, per the docs.
Fixes #1820.
|
|
31477160
|
2021-09-22T09:27:41
|
|
egl: make an int into an SDL_bool.
|
|
287571fb
|
2021-09-22T17:40:57
|
|
Limit effect of in_title_click and focus_click_pending to only blocking cursor warping; without this all relative mouse motion was getting ignored when a window was activated via a mouse button
|
|
9b74623b
|
2021-09-22T13:52:36
|
|
wayland: Woops, forgot to assign cursor theme size...
|
|
8e54698a
|
2021-09-22T13:26:44
|
|
wayland: Add support for high-DPI cursors
|
|
345c161f
|
2021-09-22T09:06:45
|
|
Fixed some accidental uses of external C runtime functions
|
|
5d455cab
|
2021-09-21T18:15:11
|
|
Don't process raw input when the window is being dragged or clicked on.
|
|
0fd54f91
|
2021-09-21T18:15:11
|
|
Fixed using a tablet with raw input relative motion
Tested with a Wacom Cintiq Pro 16"
|
|
8fee82d1
|
2021-09-21T18:15:09
|
|
Improve relative motion handling over RDP
CR and research: @danielj
|
|
478f9eed
|
2021-09-20T10:20:04
|
|
x11: Don't include X11/extensions/extutil.h
We don't use it, it was a leftover from 1.2, I think, and it doesn't exist
on Solaris, so this should hopefully fix the build there.
This also means we don't need the configure/cmake checks for
SDL_VIDEO_DRIVER_X11_CONST_PARAM_XEXTADDDISPLAY, so that was removed also.
Fixes #1666.
|
|
8d1e0ca3
|
2021-09-16T12:48:39
|
|
Vita: add support for disabling 'screensaver' (screen dimming and suspend)
|
|
2a8938f2
|
2021-09-15T12:40:22
|
|
Fixed: Whitespace being striped from the end of IME strings incorrectly + Regression with SDL_SetTextInputRect (#4752)
* Fixed: Whitespace being striped from the end of IME strings incorrectly
* Fixed: Google IME Candidate Window not placing correctly
* Why are PostBuild events stored in the vcxproj and not a user file?
* Revert SDL.vcxproj properly...
* Remove whitespace as per code review
* Fix Werror=declaration-after-statement error in code
|
|
ce177049
|
2021-09-12T09:34:41
|
|
Vita: Allow completely skipping pvr init to override apphint from app
|
|
b2504b5d
|
2021-09-11T20:08:03
|
|
Fix typos
|
|
e4556594
|
2021-09-10T21:13:51
|
|
Simplify Backspace and Enter
|
|
f162d9ee
|
2021-09-10T21:02:22
|
|
Fix Indentation
|
|
058c4d36
|
2021-09-10T20:55:49
|
|
Add envvar to disable touchpads independently
|
|
4435543d
|
2021-09-10T20:01:40
|
|
Add PVR On Screen Keyboard Support
|
|
10d3df44
|
2021-09-09T12:46:28
|
|
Vita: fix copyright dates
|
|
2a836860
|
2021-09-09T12:36:40
|
|
Fix default path
|
|
134dd468
|
2021-08-16T19:08:12
|
|
Add pvr gles/gles2 context support
|
|
6f972052
|
2021-08-30T12:21:05
|
|
Added: Support for showing the IME Candidate Window on Windows
|
|
515b7e93
|
2021-08-27T17:02:07
|
|
Fix horizontal wheel scroll direction of X11.
|
|
9fae8f70
|
2021-08-29T15:33:58
|
|
Treat empty SDL_VIDEODRIVER var to check all video drivers.
|
|
1fe9ad04
|
2021-08-27T14:09:47
|
|
SDL_ConvertSurface: add an intermediate variable to remove static analysis false positive (see bug #4600)
|
|
b1e492d1
|
2021-08-25T19:31:47
|
|
Search for an appropiate plane instead of simply using the first one.
|
|
23ffa3d9
|
2021-08-25T21:31:07
|
|
Update SDL's copy of the EGL headers from Khronos
|
|
524964f9
|
2021-08-14T12:09:13
|
|
Add SDL_HINT_VIDEO_EGL_ALLOW_TRANSPARENCY
|
|
5113fedf
|
2021-08-02T23:01:12
|
|
video/wayland: use EGL_EXT_present_opaque when available
|
|
d5fe9c30
|
2021-08-24T14:18:47
|
|
x11: Log a warning if we decide to use XVidMode.
Reference issue #1782.
|
|
ccb06296
|
2021-08-19T03:15:02
|
|
SDL_windowsevents.c: fix build against older SDKs.
|
|
402b86f2
|
2021-08-15T14:41:56
|
|
waylandevents: prevent segfault if xkb compose table is not found
this can happen e.g. on pure wayland system where there is no X11
locales for xkbcommon to find.
|
|
454943cf
|
2021-04-11T16:44:48
|
|
emscripten: Don't flag window fullscreen on external requests
Also, the condition was always true.
|
|
55af8dca
|
2019-02-27T14:16:37
|
|
emscripten: use emscripten_set_window_title api
|
|
d8baad7e
|
2019-02-27T14:15:40
|
|
emscripten: use emscripten_get_screen_size api
|
|
abc04270
|
2020-04-15T15:22:39
|
|
emscripten: Fix framebuffer array creation optimisation
|
|
b4f11a36
|
2020-04-15T14:48:52
|
|
emscripten: Drop commented out code from the dummy driver
|
|
fbc36490
|
2021-08-14T22:29:05
|
|
Use the new SDL_clamp() macro where sensible
There were a few places throughout the SDL code where values were
clamped using SDL_min() and SDL_max(). Now that we have an SDL_clamp()
macro, use this instead.
|
|
91a55a02
|
2021-08-13T23:59:39
|
|
Relative mouse motion is delivered to the window with keyboard focus
This was the original intent (note SDL_UpdateWindowGrab() in SDL_OnWindowFocusGained() and SDL_OnWindowFocusLost()) and fixes a bug where relative motion unexpectedly stops if the task bar is covering the bottom of the game window and the mouse happens to move over it while relative mode is enabled.
Another alternative would be to confine the mouse when relative mode is enabled, but that generates mouse motion which would need to be ignored, and it's possible for the user moving the mouse to combine with the mouse moving into the confined area so you can't easily tell whether to ignore the mouse motion. See https://github.com/libsdl-org/SDL/issues/4165 for a case where this is problematic.
|
|
4d9efcb5
|
2021-08-13T11:52:25
|
|
Fixed flag test for boolean correctness
|
|
b28ed028
|
2021-08-13T11:39:41
|
|
Don't warp the mouse for relative mode when the window doesn't have focus
|
|
629e9f82
|
2021-08-13T11:06:43
|
|
Fixed return value of SDL_GetGrabbedWindow() when we have an internal grab because of mouse relative mode
|
|
6aa1498b
|
2021-08-13T11:03:19
|
|
This assert wasn't correct, we set the internal grab for mouse relative mode as well.
|
|
25cd749a
|
2021-08-12T15:12:04
|
|
x11: Don't change mode if we are already in the correct mode
If we are already in the desired mode, changing it is a no-op at best,
and harmful at worst: on Xwayland, it sometimes happens that we disable
the crtc and cannot re-enable it.
Resolves: https://github.com/libsdl-org/SDL/issues/4630
Signed-off-by: Simon McVittie <smcv@collabora.com>
|
|
68ca35c3
|
2021-08-11T21:40:46
|
|
wayland: fix memleak in output listener
|
|
ae7ee2a5
|
2021-08-11T09:59:43
|
|
wayland: Ignore stateless/sizeless configs when starting in fullscreen mode
|
|
cb1e20b0
|
2021-08-10T17:50:17
|
|
Added KMOD_SCROLL to track the scroll lock state
Fixes https://github.com/libsdl-org/SDL/issues/4566
|
|
016b02f2
|
2021-08-10T12:16:55
|
|
Fixed build, C89 doesn't allow non-constant static initializers
|
|
77c8d111
|
2021-08-10T20:55:50
|
|
configuration updates for dlopen:
- cmake, configure (CheckDLOPEN): --enable-sdl-dlopen is now history..
detach the dl api discovery from SDL_LOADSO_DLOPEN functionality.
define HAVE_DLOPEN. also define DYNAPI_NEEDS_DLOPEN (CheckDLOPEN is
called only for relevant platforms.)
- update SDL_config.in and SDL_config.cmake accordingly.
- SDL_dynapi.h: set SDL_DYNAMIC_API to 0 if DYNAPI_NEEDS_DLOPEN is
defined, but HAVE_DLOPEN is not.
- pthread/SDL_systhread.c: conditionalize dl api use to HAVE_DLOPEN
- SDL_x11opengl.c, SDL_DirectFB_opengl.c, SDL_naclopengles.c: rely
on HAVE_DLOPEN, not SDL_LOADSO_DLOPEN.
- SDL_config_android.h, SDL_config_iphoneos.h, SDL_config_macosx.h,
SDL_config_pandora.h, and SDL_config_wiz.h: define HAVE_DLOPEN.
Closes: https://github.com/libsdl-org/SDL/pull/4351
|
|
cb0fd05e
|
2021-08-07T22:41:54
|
|
Adding a clarifying comment in case a programmer unfamiliar with UTF-16 and UTF-32's relationship chances upon the code.
|
|
34701129
|
2021-08-07T20:51:49
|
|
Optimizing the implementation.
|
|
712e0d1f
|
2021-08-07T16:23:15
|
|
Fixing WM_CHAR event handling for Unicode characters outside the Basic Multilingual Plane.
|
|
fcfd19db
|
2021-08-10T12:02:17
|
|
Added support for SDL_RENDERER_PRESENTVSYNC to the software renderer
This fixes https://github.com/libsdl-org/SDL/issues/4612
|
|
b3a989d0
|
2021-08-10T13:08:27
|
|
video: Fix false positives in driver name comparison
Without this change, driver names don't get matched correctly;
for example "x" can get matched with "x11" since it only checks
whether the string matches up to the length of the requested
driver name.
|
|
6ae227d0
|
2021-08-08T23:27:08
|
|
x11/wayland: fix screensaver suspension via D-Bus
b08b1bde introduced a subtle bug. Despite not using D-Bus types directly,
the code used the SDL_USE_LIBDBUS definition set by SDL_dbus.h to conditionally
compile calls SDL_DBus_ScreensaverTickle() and SDL_DBus_ScreensaverInhibit().
As a result, it still compiled without SDL_dbus.h included, but screensaver
suspension silently failed to work.
The D-Bus stuff could probably use some tweaks to be harder to accidentally
break, but for now just restore the header includes.
|
|
2e6dac87
|
2021-08-09T01:47:42
|
|
wayland: Add a hint to allow disabling libdecor use
Useful for testing xdg-shell path with compositors like Weston.
|
|
092a20d9
|
2021-08-08T16:47:34
|
|
wayland: Avoid busy waiting for vsync
|
|
7be970db
|
2021-08-06T19:51:27
|
|
wayland: Avoid setting floating width/height when re-entering fullscreen
|
|
a91ab883
|
2021-08-06T12:28:03
|
|
Fixed building on Windows with cmake, ninja, and clang
|
|
10979d37
|
2021-08-05T12:42:03
|
|
wayland: Always assume configure is wrong for non-resizable windows.
Configure events from compositors have an extremely annoying habit of giving us
completely bogus sizes, from all sorts of places. Thankfully, the protocol
gives us the ability to completely ignore the width/height and just stick with
what we know, so for all windows that are not meant to be resized, pretend we
never even got the width/height at all, the compositor is required to respect
our dimensions whether they match configure's suggestion or not.
|
|
88674b4a
|
2021-08-04T13:17:35
|
|
Fixed build
|
|
c14813a8
|
2021-08-04T13:00:14
|
|
Fixed spacing
|
|
3cad447e
|
2021-08-04T12:57:51
|
|
Only update the window size if setting the display mode succeeded
|
|
0eb6f791
|
2021-05-21T13:48:14
|
|
SDL_SetWindowDisplayMode(): If already fullscreen, adjust window size
Otherwise only the display resolution is changed, but the SDL window size
(and for example the window-surface size) aren't adjusted accordingly
and thus don't fill the whole screen.
See #3313
|
|
72d81285
|
2021-05-19T18:47:56
|
|
Improve SDL_CreateWindow() fullscreen support on Windows
.. and maybe other platforms as well (though X11 was not affected)?
The issue was that passing a higher resolution than the current desktop
resolution to SDL_CreateWindow() with SDL_WINDOW_FULLSCREEN didn't switch
to that resolution (even though it did switch to lower resolutions).
When creating a fullscreen window, window->fullscreen wasn't even set
at all (only zeroed out), setting it only happened if the user explicitly
called SDL_SetWindowDisplayMode(). So without that, SDL_CreateWindow()
-> SDL_UpdateFullscreenMode() -> SDL_GetWindowDisplayMode() used the
resolution from window->windowed.w/h which were limited to the desktop size
due to some weird combination of WIN_AdjustWindowRectWithStyle() and
WIN_WindowProc() being called after a call to SetWindowPos().
fixes #3313
|
|
b08b1bde
|
2021-08-03T22:50:58
|
|
linux: remove d-bus lazy init dead code
Lazy init in X11/Wayland is dead code since dbdbae4
|
|
7e88e772
|
2021-08-04T02:30:47
|
|
winrt: Fixed incorrect code in a Windows Phone #ifdef.
|
|
32f909f7
|
2021-08-03T13:30:57
|
|
wayland: Remove redundant waylanddyn.h includes.
All files including waylanddyn.h already include waylandvideo.h first.
|
|
124405a0
|
2021-08-03T13:17:19
|
|
wayland: Fix building without Vulkan support
|
|
350ca0f9
|
2021-08-03T04:57:53
|
|
winrt: Don't register orientation hint callback in startup code.
SDL_AddHintCallback() uses SDL_malloc(), which means this would
run before main(), so the app wouldn't be able to supply its own
replacement SDL_malloc() implementation in time.
This code was moved to under SDL_Init. Since the hint callback
already makes efforts to not override the app manifest's
orientation settings, this is safe to move until after pre-main()
startup.
Fixes #4449.
|
|
7082fb04
|
2021-08-02T22:42:28
|
|
wayland: Only dispatch on fullscreen set when the window is visible.
Fixes hang-on-startup described in #4572.
|
|
0f5b8a99
|
2021-08-02T19:48:31
|
|
wayland: For libdecor, dispatch immediately after setting fullscreen
Reference: #4578
|
|
4562da62
|
2021-08-02T16:40:56
|
|
wayland: Make libdecor configure match xdg_toplevel
|
|
1fb1aa19
|
2021-08-02T12:57:28
|
|
wayland: Keep the fullscreen check for maximize/restore events
|
|
584673a5
|
2021-08-02T12:51:23
|
|
wayland: Don't ignore configs for non-fullscreen, non-resizable windows.
This was causing configure events to not inform SDL of window size
changes, even when they were based on resizes that we fully expected. The
result was fullscreen->windowed not working at all, because it would
retain the desktop resolution instead of reverting to the floating size
that it had before moving to fullscreen mode.
Fixes Super Hexagon fullscreen toggling.
|
|
25067298
|
2021-08-02T08:15:10
|
|
wayland: Flush in SetWindowFullscreen
The flush has been removed in e5f9fae034df8ca305241c5a666e7702fcf9958f.
Unfortunately, even though ideally the flush shouldn't be necessary,
our resize sequence isn't... well, perfect, and removing that flush causes
tons of troubles.
We're also still flushing in other paths where the window size can be
changed by the compositor and where we may potentially have to obey that
change, like in Wayland_MaximizeWindow.
This also removes the hack introduced in 7f261d3b7667978ced93a4fdc6aec2380df3d87f,
which introduces problems with protocol violations and seems to not be
necessary when flushing.
|
|
ea28187c
|
2021-08-02T08:07:23
|
|
wayland: Hack surface resize into compliance with set_window_geometry
We have issues with correct resize sequence and happen to commit old-sized
buffers even after configure event for the new size has been already
acknowledged. While the reason for that stays unknown, let's at least
workaround the problem by faking window geometry into expected size.
This does not fix visual glitch on e.g. fullscreen toggling, but having
a split-second glitch is still a much better outcome than being
terminated by the compositor for protocol violation.
|
|
b5210cac
|
2021-08-02T13:47:32
|
|
wayland: Initialize floating size at window creation
This allows the windowed size to be restored for windows initially
created already in non-floating state.
|
|
dab33844
|
2021-08-02T11:58:47
|
|
wayland: Fix a warning in handle_configure_xdg_toplevel
|
|
754aa2d3
|
2021-08-02T11:55:02
|
|
Mostly revert cfcdfb7be9f5c97a51ddef9ad3677a604856266b.
This was causing window changes to completely break, resulting in broken
decorations and bizarre frame timing, I don't know what exactly it's doing
but it's not good. Kept the libdecor_frame_is_floating logic, at least.
|
|
8803589f
|
2021-08-02T12:05:06
|
|
wayland: Avoid redundant SetWindowBordered for libdecor
|
|
b4c4060a
|
2021-08-02T04:52:25
|
|
wayland: Clean up Wayland_HandlePendingResize
Commit 871c11191bfc7214061a3da37c112522a102ddf5 removed delayed
resize handling, but it left the whole structure untouched that
now became unnecessary. To help with code clarity, get rid
of the structure where pending resize state used to be stored
and pass all the data directly to Wayland_HandlePendingResize
(now renamed to Wayland_HandleResize, since it's not "pending"
anymore but applied immediately)
|
|
9bb24ad0
|
2021-08-02T05:49:35
|
|
wayland: Always call Wayland_SetWindowBordered when showing the window
Otherwise our windows have no window decoration on compositors that
support xdg-decoration-unstable-v1, but default to client-side mode.
Contrary to what the comment was stating, there is nothing in the protocol
that would make redundant calls to zxdg_toplevel_decoration_v1::set_mode
problematic.
|
|
cfcdfb7b
|
2021-08-01T18:14:53
|
|
libdecor: use same fullscreen/maximised restore logic as for xdg-toplevel
|
|
42452f8c
|
2021-08-01T13:51:30
|
|
wayland: store and restore floating states
Some Wayland compositors send (0,0) as "suggested" configure event sizes to
indicate that the client has to decide on its own which sizes to used. This
is commonly done when restoring from maximised, fullscreen or tiles states
to fullscreen.
We now store the last known floating states in a new set of variables and
restore them when we receive such a (0,0) configure event.
|
|
54aea244
|
2021-08-01T05:36:12
|
|
wayland: Disable key repeat when repeat rate equals 0
This fixes a crash on pressing keyboard button when compositor sends
zero as repeat rate, indicating that key repeat should be disabled.
From Wayland protocol spec:
> Negative values for either rate or delay are illegal. A rate of zero
> will disable any repeating (regardless of the value of delay).
|
|
b033cd0d
|
2021-07-31T16:01:48
|
|
Fixed XSync sequence to match other cases where we set the X11 error handler
|
|
4c7825f6
|
2021-07-31T18:27:14
|
|
x11: XSync while trying to catch XRRSetScreenSize error.
Reference issue #4561
|
|
d0effadf
|
2021-07-31T15:56:30
|
|
x11: Don't let XRRSetScreenSize fire a BadMatch error.
This is a workaround and not a proper fix, but this is possibly complicated,
and possibly a corner case, so this will do for 2.0.16, if not the
foreseeable future.
Reference issue #4561
|
|
e5594e66
|
2021-07-30T16:03:01
|
|
wayland: Prefer our SSD implementation if available
|
|
71897cc1
|
2021-07-30T15:51:43
|
|
wayland: Always trigger a resize when handling a configure event.
When we removed the OpenGL resize workaround it introduced a problem for
fullscreen windows in particular: When leaving fullscreen we tried to send a
resize event, but UpdateFullscreenMode would send a SIZE_CHANGED immediately
after, deleting our resize event and causing the following configure event's
resize to be ignored. This timing issue resulted in fullscreen windows not
being resized at all when becoming a floating window.
By always forcing resize events from configure events, we ensure that RESIZED
always makes it through. SetWindowSize-type changes should be unaffected as
they do not fire configure events.
|
|
c20ab7da
|
2021-07-30T00:22:50
|
|
wayland: Fix GetWindowWMInfo for <2.0.15
|
|
6f684f67
|
2021-07-29T18:20:36
|
|
cocoa: Add keyboard grab support
CGSSetGlobalHotKeyOperatingMode() is not a public API, so we will only
compile this in if SDL_MAC_NO_SANDBOX=1 is defined during compilation.
|
|
69518b9e
|
2021-07-29T17:09:24
|
|
Make sure we don't send a resize event while a window is being destroyed
This fixes https://github.com/libsdl-org/SDL/issues/3669
|