Skip to content

Add dual touchpad support to testcontroller#15540

Merged
slouken merged 2 commits into
libsdl-org:mainfrom
ceski-1:sc-testctrl
May 14, 2026
Merged

Add dual touchpad support to testcontroller#15540
slouken merged 2 commits into
libsdl-org:mainfrom
ceski-1:sc-testctrl

Conversation

@ceski-1
Copy link
Copy Markdown
Contributor

@ceski-1 ceski-1 commented May 8, 2026

  • I confirm that I am the author of this code and release it to the SDL project under the Zlib license. This contribution does not contain code from other sources, including code generated by a Large Language Model ("AI").

Description

Adds dual touchpad support to testcontroller, including virtual dual touchpads. Useful for testing Steam Controller, Steam Deck, etc. The testcontroller window height was increased to handle the extra "touch finger" rows without overlapping the "setup mapping" button.

Existing Issue(s)

No issues, but would have been helpful for #15528

@slouken slouken merged commit 006959c into libsdl-org:main May 14, 2026
46 checks passed
@slouken
Copy link
Copy Markdown
Collaborator

slouken commented May 14, 2026

Merged, thanks!

@ceski-1 ceski-1 deleted the sc-testctrl branch May 14, 2026 13:02
bovacu added a commit to bovacu/SDL that referenced this pull request May 24, 2026
commit 6c55fad411cbaa24ae4f488b4e349a21a3699b5c
Author: Ryan C. Gordon <[email protected]>
Date:   Sat May 23 23:56:48 2026 -0400

    examples/demo/04-bytepusher: go back to showing help text on load failures.

    If the VM was already running, and then a file failed to open at all (a
    directory was dropped on the window, etc), this wouldn't go back to showing
    the help text.

commit 800f347e5e33b5f11b73a9a5f0a2afd8ebaf030f
Author: Ryan C. Gordon <[email protected]>
Date:   Sat May 23 23:47:24 2026 -0400

    examples/demo/04-bytepusher: Remove render target.

    This doesn't need a render target to function. The comment suggested it was
    needed to make debug text look better when scaled, but maybe logical
    presentation used to do linear scaling exclusively at the time?

commit ae07e32269d88cd20d9e7d00701d7b5a62da8955
Author: Ozkan Sezer <[email protected]>
Date:   Sat May 23 20:11:10 2026 +0300

    SDL_itoa(): use _itoa_s(), not _ltoa_s()

    typo introduced by commit 33c9f1a70a813654a02c922aa33c658d8f9bd422

commit 0a96d47599838c2aa36cc6dad9395acb33189539
Author: Frank Praznik <[email protected]>
Date:   Sat May 23 12:20:30 2026 -0400

    wayland: Remove focus references when a pointer capture ends on a subsurface

    The core mouse code will unfocus the window when a capture ends outside the window boundaries, but the backend still needs to update the internal focus references.

commit 3626598675f499f0b24a369ebb52b23628d4898d
Author: 0xDEADCADE <[email protected]>
Date:   Sat May 23 14:01:42 2026 +0200

    Remove CenterPad and RightStick from Steam Controller (2015) internal state struct

    These values are never used for the Steam Controller (2015), as it does not physically have these inputs.

commit e7b238a6ed9d64bcc92f8ffc75fecc10f0153b73
Author: Frank Praznik <[email protected]>
Date:   Fri May 22 12:30:11 2026 -0400

    Fix casting errors

commit 5f8eb445419c5e9c4388ac414722d7baee2a9655
Author: Frank Praznik <[email protected]>
Date:   Fri May 22 11:42:53 2026 -0400

    wayland: Handle captured pointer movements over a subsurface

    Some compositors will send pointer enter/leave event while moving between surfaces that are part of the same window while mouse capture is active. Maintain window focus in this case, and adjust the coordinates relative to the content surface by the subsurface offset, if necessary.

commit 9fe200c215b334dbc115a4033d751bc0049b42e1
Author: Ryan C. Gordon <[email protected]>
Date:   Fri May 22 10:35:41 2026 -0400

    examples/renderer/20-blending: Note when a blend mode is unsupported.

commit 39be8a703f809c50ff666e7499a27a832ccf4219
Author: Ryan C. Gordon <[email protected]>
Date:   Fri May 22 10:34:35 2026 -0400

    examples/renderer/20-blending: center alpha and instructional text.

    Otherwise, it tends to get lost behind the "Source Code" tab in the web
    builds, if the browser window is too small.

commit 290f0c831fe47d0c91a377e4b843a7599358a892
Author: Jason Millard <[email protected]>
Date:   Fri Mar 27 22:08:07 2026 -0400

    iOS: Fix SDL_EVENT_DROP_FILE lost on cold start from URL open

commit 2f13731d235ceed15c909838e0d0f6a4c5fd9a6f
Author: Bitwolf <[email protected]>
Date:   Fri Mar 13 22:30:58 2026 -0700

    Update Famicom controllers to a more user friendly name.

commit 7f03da9588841e8d3da74e0dfeed50f95f2e4e6f
Author: Vittorio Romeo <[email protected]>
Date:   Tue May 5 01:54:29 2026 +0200

    emscripten: dedupe keyboard event listeners across multiple windows

commit 2bb6df90ad2761037fca39c6bba81b506381ab2f
Author: kholo <[email protected]>
Date:   Fri May 22 15:18:32 2026 +0200

    Ignore `Huion Tablet Kamvas Pro 22`

commit 6243fa2ffd8de2cf310ec4851eb0d9faef83b2fa
Author: Anonymous Maarten <[email protected]>
Date:   Thu May 21 18:15:42 2026 +0200

    Fix -Wempty-body warnings in SDL_malloc.c

    ABORT is used in the assert macro.

commit 33c9f1a70a813654a02c922aa33c658d8f9bd422
Author: Anonymous Maarten <[email protected]>
Date:   Thu May 21 18:15:27 2026 +0200

    Fix -Wdeprecated-declarations warnings

    An alternative could be to define _CRT_SECURE_NO_WARNINGS

commit 6b4ae6846017b4afcde8f91c7d1bd2e2512c0ff8
Author: Sam Lantinga <[email protected]>
Date:   Thu May 21 12:20:03 2026 -0700

    android: fixed a possible joystick-related deadlock on application termination

commit fe1918a47fb8b13a76a96fd1f07e1f3ff941a4e1
Author: Sam Lantinga <[email protected]>
Date:   Thu May 21 10:05:20 2026 -0700

    Fixed build

commit 13f91a67fc1ea717b0604f674f0cd30768062a0d
Author: Sam Lantinga <[email protected]>
Date:   Thu May 21 09:56:15 2026 -0700

    Fixed Ipega controllers being ignored in keyboard mode (thanks @AntTheAlchemist!)

commit 3545bad5899a843362164c038a216c2ad176a3ac
Author: Sam Lantinga <[email protected]>
Date:   Thu May 21 06:50:21 2026 -0700

    Process repeated joystick key events on Android

    This prevents them from being interpreted as keyboard keys by the Java code, and if internally we are treating them as keyboard keys, they'll be repeated properly.

    Fixes https://github.com/libsdl-org/SDL/issues/15664

commit 516f4a0bd5d97b402a1b27682d2d5e6e5119e189
Author: Sam Lantinga <[email protected]>
Date:   Wed May 20 17:32:01 2026 -0700

    Added notes about faster crc32() options

commit 47c8dcc968b29db7164e3ee5b5a8d8874ef7d26b
Author: Sam Lantinga <[email protected]>
Date:   Wed May 20 14:57:36 2026 -0700

    android: handle sensor registration synchronized in one place

commit 19d73016e8333cd890d16ac972c0c1a9f8c8072a
Author: Sam Lantinga <[email protected]>
Date:   Wed May 20 15:11:09 2026 -0700

    Fixed a rare crash on Raspberry Pi when creating a window

commit 0dbd9d2a65634cae4555b4d47771009b3c9fcae4
Author: Sam Lantinga <[email protected]>
Date:   Wed May 20 14:56:54 2026 -0700

    Fixed a rare crash on Raspberry Pi when creating a window

commit ef9a5b7040b36d9c6b8ab4572eb7b9d6d4190659
Author: Frank Praznik <[email protected]>
Date:   Wed May 20 11:33:46 2026 -0400

    x11: Ignore slave button presses when the window lacks keyboard focus

    XInput2 can send slave button presses before FocusIn events, which can confuse the click-through suppression logic. A window must have keyboard focus to grab the mouse anyway, so ignore slave presses when lacking keyboard focus.

commit 8371c09aa7d7afeffbcb782d8252b7959033c5f5
Author: Frank Praznik <[email protected]>
Date:   Wed May 20 11:01:40 2026 -0400

    x11: Reject click-through button events based on serial

    XInput2 may send mouse buttons presses on both the master and slave devices, and the click-through button event should be ignored on both if required.

commit 9a56bc66b5a4c824550a58207ba498d8f7d7d43f
Author: Ryan C. Gordon <[email protected]>
Date:   Wed May 20 13:02:41 2026 -0400

    assert: fixed compiler warning with LLVM + x86_64-pc-windows-msvc target.

    Fixes #15578.

commit f8dab6ad51d3fc516be1a3f3e62971a237a6cc74
Author: Ryan C. Gordon <[email protected]>
Date:   Wed May 20 12:51:41 2026 -0400

    README-migration: Note that render target support is not universally available.

    Fixes #15474.

commit d8f42ee069920d3a964d226568733f3e437bb1c2
Author: Ryan C. Gordon <[email protected]>
Date:   Wed May 20 00:42:57 2026 -0400

    examples/renderer/20-blending: Make thumbnail/onmouseover match other examples.

commit 8fe1d7faec7e910d9bb0f88ca6e95afd75e582d3
Author: Ryan C. Gordon <[email protected]>
Date:   Wed May 20 00:40:25 2026 -0400

    examples/save-rendering-to-bitmaps: Dump alpha channel.

    examples/renderer/20-blending triggered this: the renderer's framebuffer has
    an alpha channel, even if the window itself doesn't, so we ended up with some
    weird rendering in the onmouseover.webp when I rebuilt it.

commit 35098e927cd9c8b92d4eaea7d3f73958cc211f82
Author: Vittorio Romeo <[email protected]>
Date:   Wed May 6 01:25:30 2026 +0200

    emscripten: don't dispatch user input to hidden windows

commit c9e2e732b674679f4bc5caa0e36c192411cb6fc8
Author: Ahmed Lyas <[email protected]>
Date:   Wed May 20 04:05:23 2026 +0000

    examples: Add blending example (#15657)

commit f9380e15de1c57295e88757af16b5f74cdb1d46b
Author: Sam Lantinga <[email protected]>
Date:   Tue May 19 15:41:04 2026 -0700

    visionOS: fixed mousewheel values

    Here are the observed values using a Bluetooth mouse on visionOS 26.5

    Slow scroll up:
    Mouse scroll: 0,-0.017334
    Mouse scroll: 0,0
    Mouse scroll: 0,-0.017334
    Mouse scroll: 0,0

    Slow scroll down:
    Mouse scroll: 0,0.017334
    Mouse scroll: 0,0
    Mouse scroll: 0,0.017334
    Mouse scroll: 0,0

    Fast scroll up:
    Mouse scroll: 0,-0.017334
    Mouse scroll: 0,-9.36021
    Mouse scroll: 0,-100.08
    Mouse scroll: 0,-75.2287
    Mouse scroll: 0,-82.2284
    Mouse scroll: 0,-92.0137
    Mouse scroll: 0,-95.1917
    Mouse scroll: 0,-101.846
    Mouse scroll: 0,-203.266
    Mouse scroll: 0,0

    Fast scroll down:
    Mouse scroll: 0,0.017334
    Mouse scroll: 0,11.424
    Mouse scroll: 0,59.3571
    Mouse scroll: 0,68.7859
    Mouse scroll: 0,267.834
    Mouse scroll: 0,95.0823
    Mouse scroll: 0,201.809
    Mouse scroll: 0,0

commit cfed9b3aca79e083c481df2afefefb25819f6b3b
Author: Sam Lantinga <[email protected]>
Date:   Tue May 19 14:21:55 2026 -0700

    Allow setting NULL palette on any surface

    Fixes https://github.com/libsdl-org/SDL/issues/15654

commit f19dca3ca0c10f6417ac503288120ccd064cd4f4
Author: Ozkan Sezer <[email protected]>
Date:   Tue May 19 18:55:20 2026 +0300

    SDL_rawinputjoystick.c: fixed a type redefinition error

commit 42c4a0e30f04150f0b5223340a7e50b8095ce72b
Author: Ozkan Sezer <[email protected]>
Date:   Tue May 19 17:25:56 2026 +0300

    SDL_windows_gaming_input.c: work-around to build against old SDKs.

    Fixes https://github.com/libsdl-org/SDL/issues/15646

commit 169480a352463eee65e825b1a934d7bebeb7967a
Author: Ozkan Sezer <[email protected]>
Date:   Tue May 19 17:22:50 2026 +0300

    hidapi/netbsd: import mainstream commit 7e994d8671:

    https://github.com/libusb/hidapi/commit/7e994d8671 - authored by
    Izumi Tsutsui:

    netbsd: check not only addr 0 but also addr 1 to find root hubs

    On NetBSD xhci(4) uses 'addr 0' for the root hub but all drivers for
    other host controllers use 'addr 1' for the root hub.
     https://gnats.netbsd.org/60073

commit 6ed1de089c35ab283924c2fec96794909fc0df85
Author: Kuratius <[email protected]>
Date:   Tue May 19 15:34:02 2026 +0200

    Fix touchpad finger detection on Steam Deck

commit 48fe7b7d6a9275a1cd7d785c9a9d600445c571f4
Author: Ozkan Sezer <[email protected]>
Date:   Tue May 19 11:21:04 2026 +0300

    SDL_wasapi.c: added comment about SDL_AudioClientProperties workaround

commit 0e480bee307430f641d554c3a716f20748518974
Author: Sam Lantinga <[email protected]>
Date:   Mon May 18 16:13:41 2026 -0700

    visionOS: re-enable dimming mode

commit 7f7c1628cb38c9cc6936d88740cca709b754f016
Author: Sam Lantinga <[email protected]>
Date:   Mon May 18 13:00:00 2026 -0700

    visionOS: use black instead of white for the mouse overlay

    White is easier to see and people notice the overlay showing up when mouse input is enabled

commit b4ebf70e0c6cc857a99dff9b9532910afd25ae1d
Author: Sam Lantinga <[email protected]>
Date:   Mon May 18 12:54:57 2026 -0700

    visionOS: dimming doesn't seem to be reliable, so disable it for now

commit e759cc850e29d8aa8e13e0cdec66fe285f54ba89
Author: Sam Lantinga <[email protected]>
Date:   Mon May 18 09:23:38 2026 -0700

    Added an internal type for the Nintendo Switch 2 Pro controller

commit f31ca02723f57f84dc03fd19b2f5a3e4b8a15bda
Author: Frank Praznik <[email protected]>
Date:   Sun May 17 10:45:32 2026 -0400

    video: Windows keep any position set when in fullscreen after leaving fullscreen

    Adds an automated test for the behavior as well.

commit b608108593ce3770426bc45be5a48db649d41e79
Author: Susko3 <[email protected]>
Date:   Mon May 18 17:28:31 2026 +0200

    Properly fix cursor position in Korean IME

commit b5ac64137206088287c25f7cb78c40cf12d4fcdf
Author: Ahmed <[email protected]>
Date:   Mon May 18 15:46:31 2026 +0100

    examples: Fix float division

commit bf03728873547aa82a19ea624a7f05d698edabc3
Author: Ozkan Sezer <[email protected]>
Date:   Mon May 18 17:40:20 2026 +0300

    wasapi: workaround that AudioClientProperties->Options not being available in old SDKs

    Closes: https://github.com/libsdl-org/SDL/issues/15641.

commit 508450e9c05405e306a26dbe7972e6ba60656e15
Author: Gabriel Wang <[email protected]>
Date:   Mon May 18 15:31:22 2026 +0800

    adds Blit565to565SurfaceAlphaSVE2

commit e07cfdff2ccf2fb3a6abf5d3093c30fbd594af9b
Author: Gabriel Wang <[email protected]>
Date:   Mon May 18 14:32:10 2026 +0800

    adds sdl_sve_chn_blend_with_mask_fast for RGB565 alpha-blending

commit 8d9d6b1b2b04343e3bacab6ef48cecfd16ca598b
Author: Gabriel Wang <[email protected]>
Date:   Mon May 18 14:16:22 2026 +0800

    apply simplified sve2 macro protection

commit 296231e999a5fc44841ad16c207a12067f0d6af8
Author: 7aGiven <[email protected]>
Date:   Mon May 18 12:46:06 2026 +0800

    WM_IME_SETCONTEXT not set 0

commit a20530cf15e1edf9d1444263a03e1fe44731c691
Author: Kuratius <[email protected]>
Date:   Mon May 18 16:03:56 2026 +0200

    Fix Steam Controller 2 touchpad finger detection (#15644)

commit 8e6fed2cbf464344b13d5dbc86a2beb2bb53f851
Author: 7aGiven <[email protected]>
Date:   Mon May 18 17:19:02 2026 +0800

    fix Korean caret position

commit 8b49bff35387e44e7b49784c8a315d376c06e775
Author: Sam Lantinga <[email protected]>
Date:   Sun May 17 21:42:49 2026 -0700

    Fixed Nintendo Switch Pro controller sensors on Android

commit 14c31ee12a6456db78ad3ff2f100391416ee38a0
Author: Sam Lantinga <[email protected]>
Date:   Sun May 17 17:56:33 2026 -0700

    Fixed reading the controller accelerometer on Apple platforms

    DualShock and DualSense controllers no longer have hasGravityAndUserAcceleration set, but we can still get the combined user + gravity acceleration values from those controllers, which is what we want.

commit d8b2434047f5a74798cb567b38432e166f4d3361
Author: ceski <[email protected]>
Date:   Sun May 17 17:22:56 2026 -0700

    testcontroller: correct fix for touchpad free/allocate

commit 8c89a076a7b8c70ef2ec9af8c8169c4d6775d68e
Author: Sam Lantinga <[email protected]>
Date:   Sun May 17 12:17:26 2026 -0700

    Fixed deadlock introduced by 7222c04fbf2b904e815f5ac9c8623ef8030fd261

    It turns out this change causes a deadlock:
    The main UI thread calls synchronized handleMotionEvent() which then calls SDL_LockJoysticks()
    The main app thread calls SDL_LockJoysticks() and then synchronized pollInputDevices()

commit b19ecb40327333d147bc8be5850d5fe398e54c86
Author: Sam Lantinga <[email protected]>
Date:   Sun May 17 12:15:48 2026 -0700

    Reapply "Change controller sensor state on the main UI thread on Android"

    This reverts commit 02975994c12582aef918bccb3825592e7ea36d10.

    Accidentally reverted the wrong commit

commit 02975994c12582aef918bccb3825592e7ea36d10
Author: Sam Lantinga <[email protected]>
Date:   Sun May 17 12:04:11 2026 -0700

    Revert "Change controller sensor state on the main UI thread on Android"

    This reverts commit c362f1341f2e2e6abf34ae05d6068ad89bebd00d.

    It turns out this change causes a deadlock:
    The main UI thread calls synchronized handleMotionEvent() which then calls SDL_LockJoysticks()
    The main app thread calls SDL_LockJoysticks() and then synchronized pollInputDevices()

commit cbd2917324ab24c18d5afeeb435f7cf23c883403
Author: Ozkan Sezer <[email protected]>
Date:   Sun May 17 21:36:20 2026 +0300

    SDL_render_d3d11.c: fix another bad use of SDL_FUNCTION

commit 33e237eb6779ecfda70c781caa656827ee9d70f8
Author: Sam Lantinga <[email protected]>
Date:   Sun May 17 11:05:43 2026 -0700

    visionos: persist all configurable window settings

    Save the gaze indicator and dimmed mode setting as well as curvature

commit 6d3404e4bbdfa02da56bca4ed21f0426da764bfc
Author: Cameron Gutman <[email protected]>
Date:   Sat May 16 16:29:07 2026 -0500

    gamepad: Add SDL_GAMEPAD_TYPE_STEAM for Steam Controllers

commit f76b736e287f5056ff0d586febe00ef1b7a8a37f
Author: Ozkan Sezer <[email protected]>
Date:   Sun May 17 20:28:56 2026 +0300

    SDL_render_d3d12.c: revert an unintended change from commit d70578b9aac

commit ae25abeb0daab3b33c94227e339e622bfa72769c
Author: Sam Lantinga <[email protected]>
Date:   Sun May 17 07:28:36 2026 -0700

    Don't log game controller buttons in the keyboard handler on Android

commit 9aae258aeb3271fbd1e571fc0da799473f90ff57
Author: Frank Praznik <[email protected]>
Date:   Fri May 15 14:02:18 2026 -0400

    wayland: Adjust DnD coordinates when dragging over a mask subsurface

commit 336d07c2b78c1f08ff0505ce8184dfeb47ce9d62
Author: Frank Praznik <[email protected]>
Date:   Fri May 15 13:51:14 2026 -0400

    wayland: Implement Wayland_AcceptDragAndDrop()

    This simply toggles a flag that rejects DnD offers if false. Events were previously dropped silently, but rejecting the offer makes some desktops display a proper icon when the drop will not work.

commit 31d6acef64e32f154eba639bbb466cbbe8bf45eb
Author: SDL Wiki Bot <[email protected]>
Date:   Sun May 17 15:51:20 2026 +0000

    Sync SDL3 wiki -> header

    [ci skip]

commit 63d2635719d0431802e2e1c933c23c3c1c2a2d5e
Author: Sam Lantinga <[email protected]>
Date:   Sun May 17 08:47:36 2026 -0700

    Added SDL_HINT_AUDIO_DUCK_OTHERS

    Previously default audio on Apple platforms would duck other audio streams. This is unexpected, so by default we won't do that and you can use the hint SDL_HINT_AUDIO_DUCK_OTHERS to re-enable that behavior.

commit 5b98c1cc2f598115906c9c1f2758d3d256913468
Author: ceski <[email protected]>
Date:   Sun May 17 08:26:29 2026 -0700

    Add capacitive sense gamepad events (#15627)

commit 984fcdaa8a7855516a8b84016c0c253680bec3af
Author: ceski <[email protected]>
Date:   Sun May 17 07:21:08 2026 -0700

    testcontroller: free/allocate touchpads only when needed

commit 34c3fdd35075408e0330533c0c2d710ba497e9bf
Author: Sam Lantinga <[email protected]>
Date:   Sun May 17 06:45:33 2026 -0700

    Added extended internal controller types

commit 4aeac49311a15a187a8c999fc01b7fee73222edd
Author: Ozkan Sezer <[email protected]>
Date:   Sun May 17 11:55:50 2026 +0300

    update openxr headers from khronos.

commit 322dfd3adae15e4985d58522bf2a1abf6659bf4c
Author: Ozkan Sezer <[email protected]>
Date:   Sun May 17 11:55:50 2026 +0300

    update vulkan headers from khronos.

commit 968b0c6910b622bf63253d2847e67bc7fd30516d
Author: Ozkan Sezer <[email protected]>
Date:   Sun May 17 11:55:50 2026 +0300

    update gl/egl headers from khronos.

commit 75c94e9b3189a40615b74f6484cb226fc0c4a72d
Author: Ozkan Sezer <[email protected]>
Date:   Sun May 17 11:55:40 2026 +0300

    SDL_opengl_glext.h, src/video/directx/d3d12.h: revert unintended changes from commit d70578b9aac

commit 1f7a42a7b91dc4cbd5879d6ac52f84fc4d5710c3
Author: Tap <[email protected]>
Date:   Sun May 17 12:04:45 2026 +1000

    Correct steam triton haptic commands

    The listed report IDs are incorrect - there is no skipped ID

commit d4fa4b46346b973014bb54f60f6c8067b03251e7
Author: Ozkan Sezer <[email protected]>
Date:   Sun May 17 11:50:10 2026 +0300

    SDL_opengles2_khrplatform.h: add cygwin bit missed in commit 2cd5cd2a.

commit a34b35a382bffcd430465e273264021fb0f2fab1
Author: Ozkan Sezer <[email protected]>
Date:   Sat May 16 22:11:28 2026 +0300

    cygwin, test/cmake: hard-code opengl as native opengl32.

    FindOpenGL from cmake >= 3.19, or cygwin-provided cmake versions don't
    test for native windows opengl32, but we want native windows opengl32.

commit b24feafaa2c7fb6078783113bae1488dd4104fde
Author: Ozkan Sezer <[email protected]>
Date:   Sat May 16 14:56:40 2026 +0300

    cygwin: patch vulkan headers for VKAPI_CALL and enable vulkan in cmake

commit 2cd5cd2a42318fe97c8a99d6141cdb59d398875f
Author: Ozkan Sezer <[email protected]>
Date:   Sat May 16 14:56:32 2026 +0300

    cygwin: patch egl/opengles headers for EGLAPIENTRY

commit 71979477c7cb584f2bfa0bd87e9b2db4bbca25fb
Author: Anonymous Maarten <[email protected]>
Date:   Sun May 17 04:24:50 2026 +0200

    include: add sve2 to documentation of SDL_HINT_CPU_FEATURE_MASK

commit 203800565765caec4359d1e5b63c61a980b45c72
Author: Anonymous Maarten <[email protected]>
Date:   Tue May 5 19:00:45 2026 +0200

    video: don't use NEON blitters when SDL_HasNEON returns false

commit db7ac820f9c95dd75c7b71e6d37231534b6c13c5
Author: Christian Semmler <[email protected]>
Date:   Sat May 16 14:21:31 2026 -0700

    emscripten: Fix crash on Safari when probing gamepad rumble support

    Safari's older Gamepad API exposes `vibrationActuator` with `playEffect`
    and `reset` but no `effects` enumeration array. The probe added in
    651136ac7 dereferences `vibrationActuator['effects']['includes']`
    unconditionally, throwing `TypeError: undefined is not an object` on
    every Safari client that opens a connected gamepad. Add the missing
    `['effects']` null check so the probe returns false on Safari instead
    of aborting.

commit 060b74a6647229991d9d4ec310e827782dc4ae28
Author: Cameron Gutman <[email protected]>
Date:   Sat May 16 17:07:56 2026 -0500

    mouse: Restrict GCMouse to macOS Sonoma and later

commit 5e483dc16626b937f24bc10c90dedf8e1e92003e
Author: Ryan C. Gordon <[email protected]>
Date:   Sat May 16 15:29:46 2026 -0400

    android: Build the APK asset tree in the same order its listed in the file.

    This tends to get you enumerations in alphabetical order, instead of them
    being reverse-alphabetical.

    Reference Issue #15587.

commit 497b2118ba68019fd4c105129b7cf4888a46386d
Author: Ryan C. Gordon <[email protected]>
Date:   Sat May 16 15:26:47 2026 -0400

    android: Don't forbid paths of "" in the APK assets tree.

    This would make `SDL_EnumerateDirectory("assets://")` fail.

    We check for empty strings at the higher level already, before we strip out
    the "assets://" prefix to pass through the tree.

commit 2ebf23014f8e170ae7df48c51bb72a3644eec16b
Author: ceski <[email protected]>
Date:   Sat May 16 09:04:20 2026 -0700

    Add Steam Deck capacitive touch sticks, trackpad clicks, and mapping (#15612)

commit 072b2b74c793eb0e5d7925ad0fcdeb3afd712949
Author: A1029384756 <[email protected]>
Date:   Fri Apr 24 11:08:40 2026 -0400

    fix tooltips not showing on KDE

commit 3ba4b6b28eef3a5c8c6daa4c98061833efc8d35d
Author: Ozkan Sezer <[email protected]>
Date:   Sat May 16 14:55:50 2026 +0300

    SDL_gpu_d3d12.c: fix cygwin -Wformat-warnings

commit 774506c2b7ba6067c2b2cf29514f8b55cf925ee1
Author: Ozkan Sezer <[email protected]>
Date:   Sat May 16 08:44:56 2026 +0300

    SDL_opengl.h: clean-up SDL's cygwin customization.

commit 880ddb9ca3f8e78e257cf0e534d5245fad4d47e3
Author: Ozkan Sezer <[email protected]>
Date:   Sat May 16 08:44:40 2026 +0300

    SDL_dinputhaptic.c, SDL_dinputjoystick.c: replace %lu usage with new cygwin-friendly macros.

commit e972e6a01ba308c90f17ecf111485b762c450efe
Author: Ozkan Sezer <[email protected]>
Date:   Sat May 16 09:08:08 2026 +0300

    core/android/SDL_android.c (AddAPKDirs): add missing opening brace

    fixes build errors

commit 4910498820a9f6399857a6f0d757bbf287116801
Author: Ryan C. Gordon <[email protected]>
Date:   Sat May 16 00:48:00 2026 -0400

    android: EnumerateDirectory and GetPathInfo should fail for a path of "".

    Otherwise, this will get appended to the internal storage path, etc, making a
    real directory when it shouldn't.

    Reference Issue #15587.

commit 37af10db4d2058a43f44cd35906f8852571e8e11
Author: Ryan C. Gordon <[email protected]>
Date:   Fri May 15 14:35:56 2026 -0400

    android: Support "." and ".." in asset tree paths.

    Reference Issue #15587.

commit e1d623505edafd7a01523ab39910a3900dd682dc
Author: Ryan C. Gordon <[email protected]>
Date:   Fri May 15 14:34:41 2026 -0400

    android: Remove call to mktime() in APK entry parsing.

commit c00d7b4bf5580462924de5794da50a98fce09b2c
Author: ceski <[email protected]>
Date:   Fri May 15 19:18:38 2026 -0700

    Add Steam Controller mapping (#15601)

    Also fixed Hori QAM button mapping

commit 0ffb0bdd87499af6472a20c80728467d11c5826f
Author: John Schoenick <[email protected]>
Date:   Fri May 15 15:29:16 2026 -0700

    unix: Fix infinite looping in SDL_FriBidi_Process if len > 127

    start/end should be FriBidiStrIndex here -- using FriBidiLevel makes
    them `signed char` and the loop here will become infinite if `end` is
    > 127.

commit d83e7bf79edfd686020c8ce4a467dfca7a66be6a
Author: Rachel Blackman <[email protected]>
Date:   Fri May 15 13:10:44 2026 -0700

    Add Gamesir Supernova in Xinput mode to controller list

commit 86296ac8f01597076979630667472a846b04ce46
Author: Evan Hemsley <[email protected]>
Date:   Fri May 15 11:43:57 2026 -0700

    GPU: Set missing fields on Vulkan swapchain texture (#15606)

commit aeacf42e0659e3fee1e00730193f63125dc41594
Author: Sam Lantinga <[email protected]>
Date:   Fri May 15 11:00:11 2026 -0700

    gameinput: only add the share button for known Xbox Series X controllers

    The HID descriptor for the latest firmware always includes the share button, and GameInput will report it as always available, so double check against our list of classic Xbox One controllers and don't include the button on controllers that don't have it.

commit a95ce7e734f8f8b5fa5740a8e40a93cf670db8db
Author: Sam Lantinga <[email protected]>
Date:   Fri May 15 10:13:15 2026 -0700

    Detect the GameSir Super Nova in Xbox 360 mode

commit d1d54b8c56aa1025c663655d8f00e84eaa7a5ef3
Author: Anonymous Maarten <[email protected]>
Date:   Fri May 15 02:35:10 2026 +0200

    test: build testsprite as c++ application

commit bd146867e45bd5c8121c866d64161e70d9bf58c6
Author: Anthony <[email protected]>
Date:   Fri May 15 16:55:50 2026 +0100

    Update showFileDialog in proguard-rules.pro

    to match changes in 439ffd1

commit 6586bebfec42ed1418469d70dffa5216534bc635
Author: stahta01 <[email protected]>
Date:   Fri May 15 11:48:24 2026 -0400

    Fix Cygwin building and add CI (#15566)

    Co-authored-by: TrueCat17 <[email protected]>
    Co-authored-by: Anonymous Maarten <[email protected]>
    Co-authored-by: Ozkan Sezer <[email protected]>

commit be97a18d8244969877adf7530e874693a68cfbd7
Author: Ryan C. Gordon <[email protected]>
Date:   Fri May 15 10:34:30 2026 -0400

    android: Don't allow access to the asset tree with a path of "".

    Reference Issue #15587.

commit e1fa336ac4910b9e5b2096a5bc0f3c1b489364f4
Author: Ryan C. Gordon <[email protected]>
Date:   Fri May 15 10:25:40 2026 -0400

    android: Don't ever enumerate absolute paths from the assets tree.

    This could happen if opendir() failed for a reason other than the directory
    missing (for example, `opendir("/")` fails with EACCES.

    Reference Issue #15587.

commit d5af35e3fbb5bb6555ed00e69740d52af2a4e877
Author: Anonymous Maarten <[email protected]>
Date:   Fri May 15 03:47:28 2026 +0200

    surface: cannot set a palette to a non-indexed surface

    This fixes a UBSAN warning later in this function where it calculates
    (1 << SDL_BITSPERPIXEL(surface->format)). The bpp might be >= 32 and
    out of range for a bit shift.

commit 6b26332785cb67a7380429ec4b8358c99c3773f1
Author: Anonymous Maarten <[email protected]>
Date:   Thu May 14 19:15:42 2026 +0200

    ci+release: build with gameinput support

commit ff98125cbd6ca94f0efa45288ec8d4a02fe12d79
Author: SDL Wiki Bot <[email protected]>
Date:   Fri May 15 00:43:30 2026 +0000

    Sync SDL3 wiki -> header

    [ci skip]

commit 878789557545e161e048e1501c895d225c6c18b0
Author: Petar Popovic <[email protected]>
Date:   Fri May 15 02:29:37 2026 +0200

    SDL_video.h comment update

commit eb340388fc5bbe2240e7f221ac5e9ffb4bd57eec
Author: Rachel Blackman <[email protected]>
Date:   Thu May 14 17:32:25 2026 -0700

    Fix HIDAPI support for Flydigi Vader 5 Pro (#15594)

commit f286e420afd3ccb0dedc7ec77eb09d4bd2e5e102
Author: Evan Hemsley <[email protected]>
Date:   Thu May 14 17:01:13 2026 -0700

    GPU: Refactor Vulkan barriers to fix defrag segfault (#15593)

commit c9bb41bd9ca6fc2ebd1c8be150e41c52ab50e3c7
Author: Sam Lantinga <[email protected]>
Date:   Thu May 14 16:52:40 2026 -0700

    Fixed build when GameInput is enabled

commit f3faf67c645023ecb26485781dd26e0948030800
Author: ceski <[email protected]>
Date:   Thu May 14 16:26:26 2026 -0700

    Add Steam Controller touchpads, capacitive touch for sticks, and grip sense (#15528)

commit 4d95a63fe3936389119794cf6dce1483465d3d5b
Author: Ozkan Sezer <[email protected]>
Date:   Thu May 14 21:55:55 2026 +0300

    fix build after commit 2c4e6ed3585ec63adee2e9a680de3c52b4db3c0c:

    move SDL_UsingGameInputForXInputControllers() to core/windows/SDL_gameinput.cpp
    because joystick/gdk/SDL_gameinputjoystick.cpp isn't always added to build.

commit 0e07b7c5e20952c3ea6b8b490f81bc2ebc21a6fd
Author: Ryan C. Gordon <[email protected]>
Date:   Thu May 14 15:58:15 2026 -0400

    android: Comment out debug logging.

    Reference Issue #15587.

commit fdfbbcefb2470d39726748d17696c577d37586a5
Author: Sam Lantinga <[email protected]>
Date:   Thu May 14 12:00:55 2026 -0700

    Fixed error: "SVE support not enabled" building on Android

commit 9e07e0c21535859d85133c62064d97582d021a6d
Author: SDL Wiki Bot <[email protected]>
Date:   Thu May 14 18:52:22 2026 +0000

    Sync SDL3 wiki -> header

    [ci skip]

commit 439ffd13eb63e79c94df395effe9909d253074de
Author: crudelios <[email protected]>
Date:   Wed May 13 17:50:42 2026 +0100

    Android: Add support for folder dialogs

commit de08751537b91dc805ad535b876818f825ea6cbd
Author: Sam Lantinga <[email protected]>
Date:   Thu May 14 11:42:54 2026 -0700

    Fixed build for older toolchains that don't have arm_sve.h

commit 11745aad07bfae129253974df0a94f5a77c842db
Author: Sylvain Becker <[email protected]>
Date:   Thu May 14 20:17:53 2026 +0200

    Fix build with SVE2 (#15586)

commit 2c4e6ed3585ec63adee2e9a680de3c52b4db3c0c
Author: Sam Lantinga <[email protected]>
Date:   Thu May 14 10:18:58 2026 -0700

    Enable GameInput v3 by default if it's available

    GameInput is now the most functional Windows API for handling XInput controllers.

commit d57c3b685c434d2ee0fa3d258f7e165b6e8d0cf6
Author: Anonymous Maarten <[email protected]>
Date:   Thu May 14 17:40:13 2026 +0200

    gameinputjoystick: %02hhX emits a -Wformat warning

commit 8122b8f2ac68fde8306bb78c1fa758b46a91a39a
Author: Anonymous Maarten <[email protected]>
Date:   Thu May 14 17:38:30 2026 +0200

    gameinput.h emits a few Wundef warnings (WINAPI_PARTITION_* macros)

commit 0f2c04319f3192c215bef62c25adf7b41ea8f926
Author: Anonymous Maarten <[email protected]>
Date:   Thu May 14 17:37:14 2026 +0200

    cmake: gameinput.h is a c++-only header

commit 2fa7ba1e4fe54918be75a9a466b9ae51fbe14d60
Author: Anonymous Maarten <[email protected]>
Date:   Thu May 14 17:36:57 2026 +0200

    stdinc: _Countof is only available in C mode

commit a3376acc2e2fc940a909659f3d95fb199a548194
Author: Cameron Cawley <[email protected]>
Date:   Thu May 14 14:50:21 2026 +0100

    Replace custom NEON cast macros with vreinterpret_*_*

commit 006959ca87eb1406a3d1f7021b6852b01600bcb0
Author: ceski <[email protected]>
Date:   Wed May 13 23:49:01 2026 -0700

    Add dual touchpad support to testcontroller (#15540)

commit 0defb4ddfc29c7201c57d5dc8cceb07e29e07f62
Author: Sam Lantinga <[email protected]>
Date:   Wed May 13 10:01:50 2026 -0700

    Added controller sensor support for GameInput v3

    Verified working with the DualSense controller

commit b333c04cccd338a7d81fff46c07415b0b82e89ca
Author: Vlad-Florin Ilie <[email protected]>
Date:   Thu May 14 09:40:55 2026 +0300

    Fix Steam Controller 2026 (triton) rumble (#15558)

commit a400a70484200c9108ceb8926c3e7955cb60de2b
Author: SDL Wiki Bot <[email protected]>
Date:   Thu May 14 06:39:08 2026 +0000

    Sync SDL3 wiki -> header

    [ci skip]

commit 0f175891a608108a458890be6194358e0234f09f
Author: Gabriel Wang <[email protected]>
Date:   Thu May 14 14:37:46 2026 +0800

    Add SVE2 SIMD Alpha-Blending Blitter (#15504)

    SVE/SVE2 is a new SIMD extension for AArch64. Compared to NEON, SVE/SVE2 brings the following benefits that are good for SDL projects:

    - Lane prediction: we don't have to treat the tail part of a stride separately when the width is n times the hardware vector size
    - Although the performance is almost no difference from NEON when the hardware vector size is 128bits, when the hardware provides a longer vector size, e.g. 256, 512, ... 2048, we can enjoy the large performance gain without modifying the source code or recompiling a library.

    The functional correctness is validated in a dedicated [qemu project](https://github.com/GorgonMeducer/aarch64_qemu_mac_template/tree/SDL-SVE2-Acceleration-Validation).

    The performance is tested on [Radxa Orion 6 N](https://radxa.com/products/orion/o6n/), which provides 4x A720 and 4x A520 processors. Since the vector size is 128 bits, which is the same as NEON, the performance is almost the same (or no worse than) the NEON acceleration.

commit 0e5e772ba9c67d6822e2e22fc782657f8ec58000
Author: Sam Lantinga <[email protected]>
Date:   Wed May 13 20:39:38 2026 -0700

    Fixed windows getting the wrong size when setting size and aspect ratio back to back

commit e50faf4e6aa48d2684818420201260e0c4caf957
Author: Cameron Cawley <[email protected]>
Date:   Mon May 11 19:19:07 2026 +0100

    Support the full set of standard CSS cursors

commit 4884dbbe5610d6cd444b03ee694e63f086fa5825
Author: Sam Lantinga <[email protected]>
Date:   Wed May 13 20:14:50 2026 -0700

    Added SDL_SendGamepadEffect() support for the new Steam Controller

commit c247f06f01477d319abf6981c860e3a1ed02b05e
Author: Joel Auterson <[email protected]>
Date:   Thu May 14 01:01:33 2026 +0100

    Add libusb-1.0-0-dev to Linux deps doc

    libusb-1.0-0 is needed to enable SDL_HIDAPI_LIBUSB. It does not work with the `libusb-dev` package on Ubuntu, which is for the older version.

commit c6b232f5d4478af7d2c2ebfe080450931c15f414
Author: Cameron Cawley <[email protected]>
Date:   Wed May 13 20:51:02 2026 +0100

    Support loading JPEG images through SDL_LoadSurface()

commit 9672f5b68b1f3f438bb86c65f8a3c198eb4b9eb1
Author: Ryan C. Gordon <[email protected]>
Date:   Thu Apr 30 19:59:15 2026 -0400

    android: Change how apps access their APK's "assets" directory.

    Now they can explicitly access it with "assets://" filenames, and
    SDL_GetBasePath() returns "assets://"

    Fixes #15347.
    Fixes #5044.

commit e8127a9a11a5d6d720062612d15ddc2c9c812648
Author: Brenton Bostick <[email protected]>
Date:   Sun May 3 10:58:49 2026 -0400

    Fix #15500: deprecation warning on Android for slCreateEngine

commit 4eb221881a3d51eae8aa42d1ced97bb994917325
Author: Eddy Jansson <[email protected]>
Date:   Wed May 13 18:10:50 2026 +0200

    DOS: Replace SDL_memset() with SDL_zero*()

commit 70159c34f63abb234c3110c661c1e78579c3bc44
Author: Eddy Jansson <[email protected]>
Date:   Wed May 13 18:05:39 2026 +0200

    DOS & Tray: Don't do NULL-checks before SDL_free()

commit 3dbd3e43e293931cfa7b356e09fca8e89aac5e53
Author: Sam Lantinga <[email protected]>
Date:   Wed May 13 09:07:36 2026 -0700

    Return the touch device name for SDL_TOUCH_MOUSEID

commit b1f390255a239940050f87cfb52dacb796e76728
Author: Cameron Cawley <[email protected]>
Date:   Wed May 13 14:33:16 2026 +0100

    Allow formats with alpha channels for window textures

    Because the blend mode is explicitly set to SDL_BLENDMODE_NONE, it doesn't matter if there's a transparency channel in the texture format or not for opaque windows. This ensures that a 32-bit format is used with Metal instead of SDL_PIXELFORMAT_RGB565.

commit 716c767b7e7099fb0e2fda9db59227a7e1d1d8a4
Author: Sam Lantinga <[email protected]>
Date:   Tue May 12 20:15:42 2026 -0700

    Document that you may receive mouse events with SDL_PEN_MOUSEID

commit fcaf5bbf8cf339eab4614e246f33ea67e9a34a28
Author: Sam Lantinga <[email protected]>
Date:   Tue May 12 20:12:56 2026 -0700

    Use predefined names for constant keyboard and mouse IDs

    Fixes https://github.com/libsdl-org/SDL/issues/15563

commit 36e1efccb473b3aebd68048927d565c17eb48beb
Author: Ozkan Sezer <[email protected]>
Date:   Wed May 13 18:00:02 2026 +0300

    revert parts of CodeSpell commit d870911202 from 3rd party sources

commit c362f1341f2e2e6abf34ae05d6068ad89bebd00d
Author: Sam Lantinga <[email protected]>
Date:   Tue May 12 19:25:58 2026 -0700

    Change controller sensor state on the main UI thread on Android

    Fixes https://github.com/libsdl-org/SDL/issues/15565

commit 7222c04fbf2b904e815f5ac9c8623ef8030fd261
Author: Sam Lantinga <[email protected]>
Date:   Tue May 12 18:59:06 2026 -0700

    Synchronize controller access on the Java side on Android

commit 7071efb6a3a4b3a63d6a1a46516d846ae088ee2c
Author: Cameron Cawley <[email protected]>
Date:   Tue May 12 16:18:27 2026 +0100

    Fix switching modes on RISC OS

commit 418960bb4e93feaa70f68ec2da7af0f94d08d2dc
Author: Rachel Blackman <[email protected]>
Date:   Tue May 12 17:19:18 2026 -0700

    Handle the Amazon Fire TV's weird Bluetooth behavior

commit fd8682ccc9aa66d309bbe1a4a3852ee8b6c80460
Author: SDL Wiki Bot <[email protected]>
Date:   Tue May 12 23:49:34 2026 +0000

    Sync SDL3 wiki -> header

    [ci skip]

commit 5cf16e452264a6f2f8895ec046cadad41ada6123
Author: Sam Lantinga <[email protected]>
Date:   Tue May 12 16:48:06 2026 -0700

    Added curved window mode on visionOS 26 (#15298)

commit f30ec9940af42c08466a36e42fe6d5847f7c124f
Author: Sam Lantinga <[email protected]>
Date:   Mon May 11 22:10:20 2026 -0700

    Removed Wooting 60HE (ARM) from the controller blacklist

    Fixes https://github.com/libsdl-org/SDL/issues/15555

commit 4940345a2e624fe8aca2eda5ceaf3fb0b90392c9
Author: Al. Lopez <[email protected]>
Date:   Tue May 12 00:45:10 2026 -0400

    added additional examples of paddle/misc buttons for Steam Controller  (#15544)

commit bb4eedd67d9d673925a10f49cd30fd5351f14074
Author: Sam Lantinga <[email protected]>
Date:   Mon May 11 16:47:26 2026 -0700

    Fixed a crash if we get a HID device with no path

    This can happen on Linux if udev_device_get_devnode() fails.

commit e4a327709dcf7d5a623aa5c0403cccfe09e6c0c4
Author: Rachel Blackman <[email protected]>
Date:   Mon May 11 15:19:57 2026 -0700

    Correctly support OG Steam Controller when connected via USB on Android (#15561)

commit fd3cfb97c1a1d6ccccc67b2000dee71c9f1bab7d
Author: Rachel Blackman <[email protected]>
Date:   Mon May 11 12:47:30 2026 -0700

    Ensure Android gamepad mappings don't lose the first button.

commit 76f8705c1243640c7933f05fddf75f3e16fd7dff
Author: Evan Hemsley <[email protected]>
Date:   Mon May 11 11:42:11 2026 -0700

    GPU: Fix segfault when copying to Vulkan swapchain (#15543)

commit 7ec70d39c46117a0791f315164d577902167af3d
Author: Rachel Blackman <[email protected]>
Date:   Mon May 11 11:16:14 2026 -0700

    *Only* preserve report byte for feature reports. Oops.

commit 287e2573cd0c4eb6fb16a4bcc407ee7d2e62bf38
Author: Nintorch <[email protected]>
Date:   Sat May 9 16:01:06 2026 +0500

    Ignore `Keychron K10 Pro` and `Huion Tablet_GS1331`

commit 7439a94ed244434e3c27df415c8362dd9626daff
Author: Cameron Gutman <[email protected]>
Date:   Sat May 9 11:36:23 2026 -0500

    atomic: Implement loads on MSVC without RMW operations

    This fixes faults when loading from read-only memory and avoids
    cache line bouncing across cores which reduces performance.

commit c94b1435c7c573a626aea8ebec71b8f54471ae02
Author: Anthony <[email protected]>
Date:   Mon May 11 09:43:39 2026 +0100

    Add joystickSetSensorsEnabled to proguard-rules.pro

commit f6a1eb9ba96e054aa22c2fa51d291bcfb24dcac4
Author: Anonymous Maarten <[email protected]>
Date:   Sun May 10 22:34:19 2026 +0200

    ci: bump actions, switch away from ilammy/msvc-dev-cmd

commit f48525aa703e0e11134347b38571661d6ca829fd
Author: Frank Praznik <[email protected]>
Date:   Sun May 10 13:55:45 2026 -0400

    x11: Store the mouse button serial for emulated pointer events as well

    Otherwise, filtered emulated button events, such as for mouse wheels, can slip through the core event handler.

commit e497077cbf6a974640be79c814c1c662ba18c889
Author: SDL Wiki Bot <[email protected]>
Date:   Sat May 9 23:58:32 2026 +0000

    Sync SDL3 wiki -> header

    [ci skip]

commit cbe3fbe9f367340dcd924de29c225c9f4ffea1f5
Author: Evan Hemsley <[email protected]>
Date:   Thu May 7 19:20:21 2026 -0700

    GPU: Validate that 2D textures don't have layers (#15535)

commit 8efa8014df6d63af8d72fbc9cfc2236feb642dea
Author: SDL Wiki Bot <[email protected]>
Date:   Fri May 8 00:37:31 2026 +0000

    Sync SDL3 wiki -> header

    [ci skip]

commit d08ef12b127dcd69ffdf8498193a42acc4a8c9b6
Author: Evan Hemsley <[email protected]>
Date:   Thu May 7 16:34:32 2026 -0700

    GPU: Allow depth texture arrays (#15534)

commit 04d8a654d8d95a59fa04df9833deab8c6ea50b80
Author: Frank Praznik <[email protected]>
Date:   Thu May 7 12:27:06 2026 -0400

    wayland: Ensure the viewport size is always non-zero

    A viewport size of zero is a protocol error, so guard against it when adjusting the aspect ratio.

commit ba3577f5846d3aa6fd074c4decc18eac747b514e
Author: Frank Praznik <[email protected]>
Date:   Wed May 6 12:41:53 2026 -0400

    wayland: Ensure window dimensions are greater than zero after adjusting for aspect

    Resizing to zero can cause a bad viewport size error.

commit c8feb297465d6702f293d0941b8e6d3554653a26
Author: cosmonaut <[email protected]>
Date:   Thu May 7 09:58:56 2026 -0700

    GPU: Clarify VK_KHR_maintenance9 comment

commit 2949a0d6d51a591e49c189769d2b09ba24db8efe
Author: Susko3 <[email protected]>
Date:   Thu May 7 13:10:47 2026 +0200

    Enable text editing events in checkkeys

commit ab19d09939f7c3365508f3894ae63d9faa16c529
Author: Sam Lantinga <[email protected]>
Date:   Wed May 6 19:42:39 2026 -0700

    Fixed build

commit 5d63a4cad29ba50d04b8136fe8a5a1b87eee7707
Author: Torbjorn Laedre <[email protected]>
Date:   Fri Apr 10 15:56:06 2026 +0200

    Change 3D texture memory barrier sub-resource range to be maintenance9 compatible.

commit 386f198622083f8b91753f3bcce75c631c3701b5
Author: Sam Lantinga <[email protected]>
Date:   Wed May 6 18:12:01 2026 -0700

    Don't report 10% battery for Xbox controllers using XInput

commit f8c364ae7432bc8efee0914734d3afb18458f394
Author: Rachel Blackman <[email protected]>
Date:   Wed May 6 15:14:09 2026 -0700

    Ensure Android hidapi does not drop the report byte (#15527)

commit 56e0d052f18938e8d9c6cfe11d87d118afc1990d
Author: Ryan C. Gordon <[email protected]>
Date:   Wed May 6 12:30:46 2026 -0400

    opengles2: Rework render targets.

    Now this keeps one FBO for each SDL_TEXTUREACCESS_TARGET texture, and doesn't
    reuse it. We check if the FBO is "complete" once, at creation time, and
    setting a render target merely has to bind the right FBO and never look back.

    This simplifies the code and removes a guaranteed pipeline stall when setting
    a new render target.

    Fixes #15524.

commit 51925aa92e812ec6fc3afd8c39e6c3dc4112eda9
Author: Michael Fitzmayer <[email protected]>
Date:   Wed May 6 18:31:37 2026 +0200

    [N-Gage] Resolve hang on repeated app launch.

    CAudio::~CAudio() waited on MaoscBufferCopied(KErrAbort) to set
    EStateDone, but that callback can never fire once the active scheduler
    loop has exited, deadlocking every close.

    - StopThread() before iStream->Stop() in ~CAudio()
    - Force iState = EStateDone instead of waiting on a dead callback
    - Add 5s timeout to AudioIsReady() poll in E32Main()
    - Fix CleanupStack LIFO pop order (mainApp before gRenderer)

commit e3393e630417c9d74c9eebc3bfab0f6bd9e345b7
Author: Frank Praznik <[email protected]>
Date:   Wed May 6 11:30:15 2026 -0400

    wayland: Queue the surface frame callback after the initial commit

    Some compositors may dispatch this too early, during the initial empty commit, when subsurfaces are attached to a toplevel window, but a buffer has yet to be committed to the parent surface. Don't set the frame callback until the initial empty commit is done, so it will be called when the actual parent surface frame is committed.

commit 702f9d94cd878751add81bf7035bc3144caa950d
Author: Sam Lantinga <[email protected]>
Date:   Wed May 6 09:12:03 2026 -0700

    Use SDL_HasWindows()

commit 77cd3872c42d71c59c85ccaa08994cb5e0c9eecc
Author: Michael Fitzmayer <[email protected]>
Date:   Wed May 6 17:27:12 2026 +0200

    [N-Gage] Add missing include, clean-up.

commit b9da2b8d97b2b82e567b402589b6ce6bab4b5e49
Author: Michael Fitzmayer <[email protected]>
Date:   Tue May 5 18:59:28 2026 +0200

    [N-Gage] Add Gouraud-shaded triangle rasteriser

    Implement DrawGeometry using a software scanline rasteriser that fills
    triangles directly into the EColor4K framebuffer. Vertices are sorted by
    Y, split into upper/lower halves and filled with per-scanline edge
    interpolation. Colour is stepped incrementally across each span (one
    division per span edge rather than per pixel) to avoid the cost of
    emulated integer division on the ARM920T.

commit 37089cf0a8b82776cc69fc54e1204601244ea83b
Author: misscelan <[email protected]>
Date:   Wed May 6 16:39:23 2026 +0200

    Update for N-Gage - Audio is now double buffered (#15516)

    [N-Gage] Audio is now double buffered to avoid stuttering and glitches. Some audio platform specific variables were exposed through SDL_Hints. Same method was used to display FPS. N-gage functions to obtain the current buffer and screen pitch were added to the render.

    Adds hints:

    SDL_AUDIO_NGAGE_LATENCY
    SDL_AUDIO_NGAGE_SCHEDULER_TICK
    SDL_AUDIO_NGAGE_PROCESS_TICK
    SDL_AUDIO_NGAGE_PROCESS_PRIORITY
    SDL_RENDER_SHOW_FPS

    Adds functions to get current buffer address and pitch:

    void *NGAGE_GetBackbufferAddress(void);
    int NGAGE_GetBackbufferPitch(void);

    ---------
    Co-authored-by: Michael Fitzmayer <[email protected]>
    Co-authored-by: Eddy Jansson <[email protected]>

commit 1ac0ae92247285714f50d07007bbb71d2c6d266d
Author: Frank Praznik <[email protected]>
Date:   Tue May 5 18:26:51 2026 -0400

    wayland: Unconditionally send an exposure event on window shown status

    Some compositors send the frame callback as part of the initial configuration sequence, so the window may already be past the "waiting for frame" state. Ensure that the exposure event is always sent.

commit 8effeecb8d0f1ac98b633843103733a30a4b6cef
Author: Anonymous Maarten <[email protected]>
Date:   Tue May 5 21:48:20 2026 +0200

    cmake/sdlcpu: detect mips

    PlayStation Portable uses MIPS32

commit fee8c94b5c7211dd04349470a6ff333f07ac0d99
Author: Evan Hemsley <[email protected]>
Date:   Tue May 5 12:55:16 2026 -0700

    GPU: D3D12 stencil plane transition (#15519)

commit c7df6fe847b0cf0164567f1e9c9fa08b8a03e0f7
Author: SDL Wiki Bot <[email protected]>
Date:   Tue May 5 17:47:49 2026 +0000

    Sync SDL3 wiki -> header

    [ci skip]

commit b8545fce54ba9d0c24836ff9ab5d5b0737d04f92
Author: Frank Praznik <[email protected]>
Date:   Tue May 5 12:51:45 2026 -0400

    x11: Disable the X Synchronization Extension by default

    Under the right conditions, this extension can result is smoother resizing when rendering with OpenGL, however, it is known to cause problems in certain cases, such as when handling presentation externally.

    Gate it behind a hint, and disable it by default. Developers can selectively enable it when they verify that they meet the criteria for using it, and that it behaves correctly in their apps/games.

commit f6f4664ed1c75663e71ab4e39f6de0909fcb5106
Author: Sam Lantinga <[email protected]>
Date:   Tue May 5 08:53:01 2026 -0700

    Fixed rare cursor corruption on Windows

    If the cursor was created with a temporary surface that was pointing at external memory, then when the cursor is used it might be referencing memory that had already been freed.

commit 93a5d33386ba867034d4ec09169325f8f5df3ce0
Author: Michael Fitzmayer <[email protected]>
Date:   Tue May 5 13:04:07 2026 +0200

    [N-Gage] Rename variable to avoid warning that the declaration of free' shadows global declaration.

commit 922b872b4f3ea0fa5ae959040fe14157ac295449
Author: Ryan C. Gordon <[email protected]>
Date:   Mon May 4 23:43:34 2026 -0400

    thread: Remove semaphore in thread creation.

    This was added so that the new thread definitely has its threadid set, via
    SDL_GetCurrentThreadID(), before SDL_CreatThread returns, but this broke
    Emscripten, which can't wait on a newly-created thread, since the thread won't
    start until a later mainloop iteration.

    Now we have the creating thread set this id in SDL_SYS_CreateThread, where
    platform-specific logic can figure out how to calculate the new thread's ID
    from the parent thread, without using SDL_GetCurrentThreadID().

    Fixes #15509.

commit 3c1636a9584e5ccaecd9371bdf92520ec39cd04e
Author: Nintorch <[email protected]>
Date:   Mon May 4 20:41:48 2026 +0500

    Fix JoyCon mappings on Android

commit c699512adcc139ec1a355ff97cb2e5dbab3c9ac2
Author: Nintorch <[email protected]>
Date:   Mon May 4 00:35:34 2026 +0500

    Add support for joystick motion sensors on Android

commit 3ee0439ae508671ec9e5dc54b4a3e59105ad6972
Author: Frank Praznik <[email protected]>
Date:   Sun May 3 17:31:37 2026 -0400

    wayland: Pass the inverted flag for horizontal scroll events

    Natural scrolling affects both axes, and the compositor may not send the vertical axis orientation if the frame has no vertical scroll motion, so purely horizontal events need to be flagged as inverted as well.

commit c805a4d6327dc33a8a9df0ccfc393967d10dade8
Author: Nintorch <[email protected]>
Date:   Sun May 3 21:26:15 2026 +0500

    Fix Xbox controller names in MFI joystick backend (#15499)

    controller.vendorName returns a generic name for Xbox controllers ("Controller"), so we have to give them proper names.

commit 7629a5cf9add411269cd6ae1f3d6b18fd160beb1
Author: Ozkan Sezer <[email protected]>
Date:   Sat May 2 20:21:20 2026 +0300

    SDL_test_memory.c: revised DWORD64 print

commit 4a52a5ee04cd5cd3e2757aa165b4cb7b96857c92
Author: Sam Lantinga <[email protected]>
Date:   Fri May 1 16:57:07 2026 -0700

    Fixed crash on Windows when a controller is connected

commit e70f1bfc29aa0aa9a4c066725df48ab336067d73
Author: Igor <[email protected]>
Date:   Fri May 1 18:01:13 2026 -0300

    X11TK: fix late null-check causing segfault

    The code is using `controls.window` before checking if it isn't null.

    I found this bug by accident when I tried to run `SDL_ShowSimpleMessageBox`.

    It first tried using Wayland with `zenity`, but since I don't have `zenity`, it fallbacked to `X11_ShowMessageBoxImpl`.

    For some reason it couldn't create a window, maybe something related to XWayland, so `controls.window` was `NULL`.

commit 1cb61df1e51a715916233ba91e845c66a5a87e81
Author: Michael Fitzmayer <[email protected]>
Date:   Fri May 1 11:14:17 2026 +0200

    [N-Gage] Fix image transformations, add color keying, and improve overall rendering performance. Fixes #15427

    [N-Gage] Correct SDL_FLIP_HORIZONTAL for sprite sheet textures

    - ApplyFlip: swap toward midpoint when dest == source to avoid
      overwriting pixels before they are read
    - CopyEx: restore original bitmap pixels after BitBlt so the texture
      is not permanently mutated across frames
    - CopyEx: extract srcrect sub-region before transforming so flip/
      rotate/scale operate on the correct pixels, not the full texture

    [N-Gage] Use scratch bitmap in CopyEx to avoid mutating source texture.

    Replace the write-then-restore pattern on the source texture with a
    persistent iScratchBitmap. The transform pipeline operates entirely
    within iPixelBufferA/B; the final result is copied into iScratchBitmap
    and BitBlt reads from there. The source texture is never written to.

    [N-Gage] Fix Copy() for render-target textures by using direct BitBlt

    Bypass pixel readback for SDL_TEXTUREACCESS_TARGET textures in CRenderer::Copy().
    Reading raw pixels via DataAddress() on a server-side bitmap is unreliable; use
    BitBlt directly instead.

    [N-Gage] Implement color-key masking using Symbian's BitBltMasked.

    This implementation works fine, but relies on a platform specific property. This isn't ideal.
    Todo: Add SDL_PIXELFORMAT_ARGB4444 to the N-Gage's rendering back-end.

    [N-Gage] Avoid using BitBltMasked to improve performance. Much better!

    Write only non-color-key source pixels directly into the destination bitmap
    preserving existing destination pixels wherever the color key matches.
    This replaces BitBltMasked and avoids the cost of building an EGray2 mask.

    [N-Gage] Remove redundant function call since we're not using BitBltMasked() anymore.

    [N-Gage] Remove SDL_PROP_TEXTURE_NGAGE_COLOR_KEY_NUMBER

    - Promote SDL_PIXELFORMAT_XRGB4444 to SDL_PIXELFORMAT_ARGB4444 instead.
    - Remove now unused functions.

commit f0b89704e915bc0d678cec9efbf961cf979d1ba6
Author: Anonymous Maarten <[email protected]>
Date:   Wed Apr 29 22:17:44 2026 +0200

    stdinc: use _Countof in SDL_arraysize

    _Countof is a compiler intrinsics that errors when using a pointer argument

commit c677c913a634a9ecf1e131f089fb31415382b722
Author: Cameron Gutman <[email protected]>
Date:   Thu Apr 30 21:57:50 2026 -0500

    haptic: Enable gamepad haptic support under sdl2-compat

commit e9a6d7eda0bbd7c4468fc9b4e2a37e4e3b584985
Author: Sam Lantinga <[email protected]>
Date:   Thu Apr 30 19:55:24 2026 -0700

    Fixed copyright on SDL_hidapi_steam_triton.c

    Fixes https://github.com/libsdl-org/SDL/issues/15486
    Closes https://github.com/libsdl-org/SDL/pull/15487

commit 41f079491a0e79b22441fd32a7c8ad91db237744
Author: Cameron Gutman <[email protected]>
Date:   Wed Apr 29 17:51:26 2026 -0500

    pen: Fix enabling touch emulation while a pen is connected

commit 81cde11d1e680e2d8ba779377209f398a35c0c4c
Author: Anonymous Maarten <[email protected]>
Date:   Wed Apr 29 20:30:14 2026 +0200

    tests: fix test/emscripten/server.py when running without --map

commit 1492911c7d752e5dc73b836ca25490919b344508
Author: Jakub Wasilewski <[email protected]>
Date:   Wed Apr 29 10:26:35 2026 +0200

    metal: Added missing lock in METAL_INTERNAL_PerformPendingDestroys.

    Without this lock, a concurrent call to SDL_ReleaseGPUBuffer, SDL_ReleaseGPUTransferBuffer or SDL_ReleaseGPUTexture can cause one of the arrays to be reallocated while METAL_INTERNAL_PerformPendingDestroys is iterating over it, causing a bad day all around.

commit 1aa72247af95802d897dabd51b29311e87c41ae0
Author: Cameron Gutman <[email protected]>
Date:   Tue Apr 28 21:52:21 2026 -0500

    pen: Only create touch emulation device when a pen is present

commit e1e6cbe6ecf78da703829c62ff5335e7e9a16774
Author: Sam Lantinga <[email protected]>
Date:   Tue Apr 28 17:26:11 2026 -0700

    Disable accidentally enabled debug logging

commit 9235ac4efdbd175d0c217ca0fd1bc824ccb968a0
Author: Ryan C. Gordon <[email protected]>
Date:   Tue Apr 28 10:45:34 2026 -0400

    android: Parsing the APK's central dir is separate from the AAssetManager.

    Only parse when necessary, which it isn't when opening a file, so this is now
    separated from creating the cached AAssetManager object.

commit 40e60452ade1c82c3ce728ce4631f8824182f609
Author: Ryan C. Gordon <[email protected]>
Date:   Thu Apr 23 23:15:13 2026 -0400

    android: Use enough zip64 format info to see APKs with files that are > 4gb.

commit bb4332bdc2ff32aa41bdb7354731ac1ef38f7d9e
Author: Ryan C. Gordon <[email protected]>
Date:   Mon Apr 20 20:18:45 2026 -0400

    android: Parse the APK directory tree, replace AAssetManager enum/getpathinfo.

    The AAssetManager won't supply this information to us, but it's just a zip
    file, so we can read its central directory ourselves. We can still use
    AAssetManager for file i/o to the APK's assets, so we don't have to deal with
    compression and other zipfile features.

    Fixes #15220.
    Reference Issue #15347.

commit 71d0d069edf49eaed63762ea0d593e7296cff357
Author: Sam Lantinga <[email protected]>
Date:   Tue Apr 28 15:31:10 2026 -0700

    GameInput: don't say the device is present if we won't handle it

commit d5fca9628affff85fc7dd8dc8fb2e70a6e1957dd
Author: Sam Lantinga <[email protected]>
Date:   Tue Apr 28 14:10:04 2026 -0700

    Don't use the fake HID endpoint for Xbox controllers on Windows

commit b40baf1532eb98b08b65cb9f51cd0e3e76be6459
Author: SDL Wiki Bot <[email protected]>
Date:   Tue Apr 28 19:11:35 2026 +0000

    Sync SDL3 wiki -> header

    [ci skip]

commit 7212ab1c2a12db7a81b1b13cc28e860cb9cfa138
Author: Ryan C. Gordon <[email protected]>
Date:   Tue Apr 28 08:08:15 2026 -0400

    checkkeys: Sleeping for 100ms every frame makes the program too unresponsive.

    Makes it feel like there's a bug in SDL's text input handling. 10ms is fine.

commit 788bd816e7c3d90ba7eaa3b3703a384e1ef50483
Author: Ryan C. Gordon <[email protected]>
Date:   Mon Apr 27 14:53:45 2026 -0400

    SDL_openxr.h: Another attempt to fix the wiki bridge.

commit 085447a56e889abfaa4317b2a9c6d0826774d26a
Author: Anonymous Maarten <[email protected]>
Date:   Mon Apr 27 00:58:38 2026 +0200

    apple: add exports file

commit 364c8037f45b8b2110451575aca2c40f50d8a5c5
Author: SDL Wiki Bot <[email protected]>
Date:   Mon Apr 27 18:46:49 2026 +0000

    Sync SDL3 wiki -> header

    [ci skip]

commit 96a061e1b1ab2318ea841cd9a391ba70c7cabc34
Author: Ryan C. Gordon <[email protected]>
Date:   Mon Apr 27 14:42:10 2026 -0400

    SDL_openxr.h: Wrap some non-SDL pieces in `!SDL_WIKI_DOCUMENTATION_SECTION`.

commit 6d9b470e84921a847bd641e02920efd81baa22bf
Author: Ryan C. Gordon <[email protected]>
Date:   Mon Apr 27 14:41:45 2026 -0400

    SDL_openxr.h: tweak the category docs language slightly.

commit 30aeb330f24223f824f26b71cfd4bf9219c286c9
Author: SDL Wiki Bot <[email protected]>
Date:   Mon Apr 27 18:38:02 2026 +0000

    Sync SDL3 wiki -> header

    [ci skip]

commit 66e98b5598d840b3e4d767ace145b197bc0a9962
Author: Cameron Gutman <[email protected]>
Date:   Fri Apr 24 22:52:17 2026 -0500

    atomic: Fix infinite recursion in SDL_CompilerBarrier() fallback

    On some platforms, SDL_MemoryBarrierRelease() is defined to
    SDL_CompilerBarrier(). If SDL_CompilerBarrier() is also defined to
    the fallback spinlock acquire/release, then we will infinitely
    recurse in SDL_UnlockSpinlock(). Avoid this by not unlocking the
    temporary spinlock we create.

commit b7726026f8fd9d5bf3c39a8566162db23f755e7d
Author: Sam Lantinga <[email protected]>
Date:   Mon Apr 27 10:18:25 2026 -0700

    Fixed double-backspace with hardware keyboard on iOS

commit dcf05165d389af01d5680b66e2656c2cdc5a24ca
Author: Sam Lantinga <[email protected]>
Date:   Mon Apr 27 09:57:31 2026 -0700

    Use SDL_SendScreenKeyboardShown() and SDL_SendScreenKeyboardHidden() on iOS

    We now have events for on-screen keyboard visibility, so we should use these instead of starting and stopping text input.

    Fixes https://github.com/libsdl-org/SDL/issues/15437
    Confirmed not to regress the fix in https://github.com/libsdl-org/SDL/pull/11845

commit 6f952a8e636b8c3173075ddf1fd9458489adedf3
Author: Sam Lantinga <[email protected]>
Date:   Mon Apr 27 10:06:00 2026 -0700

    testime: use the correct properties when enabling text input

commit 73fc274ef7f96e181ec217f54ed74e0dca91b771
Author: Frank Praznik <[email protected]>
Date:   Mon Apr 27 12:29:55 2026 -0400

    renderer: Check the surface validity flag when re-acquiring the surface in the software renderer

    If a size change occurs, the sdl2-compat event handler will flush the renderer, which will cause the software renderer to re-acquire a surface that was invalidated due to the size change. However, if the OnWindowPixelSizeChanged handler is called afterward, the invalid flag will be set on the surface, causing presentation to fail.

    Check both for a null surface pointer and an invalid surface flag when checking surface validity in the software renderer.

commit fe6c1f113402cbdf708e14533c18710f371b52de
Author: Ryan C. Gordon <[email protected]>
Date:   Mon Apr 27 11:46:15 2026 -0400

    coreaudio: Patched to compile, again, on iOS.

commit 1226725e9ac1321614e1ecd0d7f245285bd73131
Author: Ozkan Sezer <[email protected]>
Date:   Mon Apr 27 18:04:02 2026 +0300

    docs/README-platforms.md: Add DOS.

    [ci skip]

commit 62ea2968944b6eb709d0c945f21f0abb3f5bec9c
Author: Ryan C. Gordon <[email protected]>
Date:   Mon Apr 27 10:39:06 2026 -0400

    coreaudio: Patched to compile on iOS.

commit a74722ed746a54f176a1fb44c8d9d1ae7db3d950
Author: Ryan C. Gordon <[email protected]>
Date:   Mon Apr 27 10:25:25 2026 -0400

    coreaudio: Always init/deinit session listener on iOS.

    Previously, if UpdateAudioSession() failed on close--which it might if
    something strange has happened with the system's audio configuration--the
    listener wouldn't be deregistered, and would risk touching a free'd pointer
    if the app moved to or from the background afterwards, firing an event handler
    that should have been deregistered.

    Closes #15439.

commit 0bf2fa89784344973bceaa6f6163f46885ebf8e6
Author: Ryan C. Gordon <[email protected]>
Date:   Mon Apr 27 09:33:46 2026 -0400

    internal: Replace SDL_PUSH_ERROR with SDL_PushError.

    Reference Issue #15458.

commit c46dfdba543195873c205f8a30957d1a50b99565
Author: SDL Wiki Bot <[email protected]>
Date:   Mon Apr 27 04:32:58 2026 +0000

    Sync SDL3 wiki -> header

    [ci skip]

commit d5acd7f123f593a256124f313a47816c97532652
Author: Cameron Gutman <[email protected]>
Date:   Sun Apr 26 21:42:23 2026 -0500

    atomic: Use __atomic_signal_fence() for SDL_CompilerBarrier()

    This is the (slightly) more standard way to accomplish it.

commit 3308183dfaedceb7cabb861d6ddb1bbc528d6cca
Author: Ozkan Sezer <[email protected]>
Date:   Mon Apr 27 05:30:14 2026 +0300

    video, dos: silence -Wdangling-pointer warnings

commit 1023f48b5a403890ecd59cd862f2c373e2255a7b
Author: Ozkan Sezer <[email protected]>
Date:   Sun Apr 26 21:12:14 2026 +0300

    add missing newlines at end of dos sources.

commit c65c8093377cfa286854a3ff1bed9668b9d2a255
Author: Frank Praznik <[email protected]>
Date:   Sat Apr 25 11:32:19 2026 -0400

    wayland: Use manual masking on KDE for non-native aspect fullscreen modes

    KDE doesn't automatically center and mask fullscreen windows that don't match the display aspect ratio, so they are masked manually.

    Can be removed when https://invent.kde.org/plasma/kwin/-/merge_requests/6953 is merged.

commit 80a590507535da7403c3f75c958e7a45517ada4d
Author: Frank Praznik <[email protected]>
Date:   Sat Apr 25 11:07:39 2026 -0400

    wayland: Change the non-native fullscreen mode scaling default to 'aspect'

commit 543a05bf08b8f07462458826b5a0a58e3b025384
Author: ShulkerSakura <[email protected]>
Date:   Sun Apr 26 22:45:06 2026 +0800

    Add keychron Q3 blacklist (#15462)

commit 47d14491a6e89322b2a649cdbfb854fccce12cd3
Author: Sam Lantinga <[email protected]>
Date:   Sat Apr 25 17:10:54 2026 -0700

    Fixed keyboard being hidden while being shown on Android

commit 8fb1c6e367620be931ef5b1477737e144c1c10c1
Author: Ryan C. Gordon <[email protected]>
Date:   Sat Apr 25 15:26:22 2026 -0400

    haiku: Don't strdup SDL_GetError()'s string before using it in SDL_SetError().

    This isn't necessary anymore, after rece…
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants