cocoa: Added SDL_HINT_MAC_USE_GCMOUSE.

Reference Issue #16241.
This commit is contained in:
Ryan C. Gordon
2026-09-09 10:19:31 -04:00
parent fe2bca9748
commit d66e2d0cbd
2 changed files with 24 additions and 0 deletions

View File

@@ -2837,6 +2837,26 @@ extern "C" {
*/
#define SDL_HINT_MAC_SCROLL_MOMENTUM "SDL_MAC_SCROLL_MOMENTUM"
/**
* A variable controlling whether the GCMouse API will be used on macOS.
*
* On supported versions of macOS, GCMouse is usually a better way to
* read mouse input, but may cause problems in some scenarios (remote control
* software that wants to send non-GCMouse input events, etc).
*
* When GCMouse is disabled, SDL will use standard Cocoa mouse events.
*
* The variable can be set to the following values:
*
* - "0": GCMouse won't be used.
* - "1": GCMouse will be used if available. (default)
*
* This hint needs to be set before SDL_Init().
*
* \since This hint is available since SDL 3.6.0.
*/
#define SDL_HINT_MAC_USE_GCMOUSE "SDL_MAC_USE_GCMOUSE"
/**
* A variable controlling whether holding down a key will repeat the pressed
* key or open the accents menu on macOS.

View File

@@ -451,6 +451,10 @@ static void Cocoa_OnGCMouseDisconnected(GCMouse *mouse)
void Cocoa_InitGCMouse(void)
{
if (!SDL_GetHintBoolean(SDL_HINT_MAC_USE_GCMOUSE, true)) {
return;
}
@autoreleasepool {
// These APIs are available starting in macOS Big Sur, but we don't enable
// GCMouse until Sonoma due to broken motion and button events on MacBooks